vector,deque,list相关操作
1、vector的基本操作
创新互联建站为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到成都网站建设、成都做网站, 我们的网页设计师为您提供的解决方案。
(1)、对动态数组元素的添加和删除、获取
代码如下:
#include#include using namespace std; //数组元素的添加和删除、获取 int main(void){ vector v1; v1.push_back(1); v1.push_back(2); v1.push_back(3); cout<<"len:"< 0){ cout< (2)、vector的初始化
代码如下:
#include#include using namespace std; void printV(vector &v){ for(int i = 0; i < v.size(); i++){ cout< v1; v1.push_back(1); v1.push_back(3); v1.push_back(5); v1.push_back(7); vector v2 = v1; //对象初始化 vector v3(v1.begin(), v1.begin()+2); //对象初始化 /* //vector的遍历 for(i =a 0; i < v1.size(); i++){ v1[i] = i + 1; } int i; for(i = 0; i < v1.size(); i++){ cout< v5(10); //前10个元素初始化为0; v5.push_back(100); v5.push_back(200); printV(v5); return 0; } (3)、vector中迭代器的正向和反向遍历
代码如下:
#include#include using namespace std; int main(void){ vector v1(10); //初始化空间的值都为0; for(int i = 0; i < 10; i++){ v1[i] = i+1; } //迭代器 //1(begin)、3、5 、(end) 当it = v1.end()的时候,说明这个容器已经遍历完了; //end()的位置,应该是5的后面; //正向遍历 vector ::iterator it; for(it = v1.begin(); it != v1.end(); it++){ cout<<*it<<" "; } cout< ::reverse_iterator rit; for(rit = v1.rbegin(); rit != v1.rend(); rit++){ cout<<*rit<<" "; } cout< (4)、vector中的元素删除操作
代码如下:
#include#include using namespace std; void printV(vector &v){ for(int i = 0; i < v.size(); i++){ cout< v1(10); for(int i = 0; i < 10; i++){ v1[i] = i + 1; } //区间删除 v1.erase(v1.begin(), v1.begin()+3); //删除开始的3个元素 //指定(元素)位置删除 v1.erase(v1.begin()); //在头部删除一个 //根据元素的值 v1[1] = 2; v1[3] = 2; vector ::iterator it; for(it = v1.begin(); it != v1.end(); it++){ if(*it == 2){ v1.erase(it); //删除的是元素,参数是迭代器 } } v1.insert(v1.begin(), 100); v1.insert(v1.end(), 200); printV(v1); return 0; } 2、deque的基本操作
双端数组的基本操作;
代码如下:
#include#include #include using namespace std; void printD(deque &d){ deque ::iterator it; for(it = d.begin(); it != d.end(); it++){ cout<<*it<<" "; } cout< d1; d1.push_back(1); d1.push_back(3); d1.push_back(5); d1.push_front(-11); d1.push_front(-33); d1.push_front(-55); cout<<"头部元素:"< ::iterator it; it = find(d1.begin(), d1.end(), -33); if(it != d1.end()){ cout<<"-33数组的下标是:"< 3、stack的基本操作
代码如下:
#include#include using namespace std; class Teacher{ public: void printS(){ cout<<"age :"< s; s.push(&t1); s.push(&t2); s.push(&t3); while(!s.empty()){ Teacher *tmp = s.top(); tmp->printS(); s.pop(); } return 0; } /* int main(void){ Teacher t1,t2,t3; t1.age = 31; t2.age = 32; t3.age = 33; stack s; s.push(t1); s.push(t2); s.push(t3); while(!s.empty()){ Teacher tmp = s.top(); tmp.printS(); s.pop(); } return 0; } */ /* int main(void){ stack s; //入栈 for(int i = 0; i < 10; i++){ s.push(i+1); } cout< 4、queue的基本操作
代码如下:
#include#include using namespace std; class Teacher{ public: int age; char name[25]; public: void printQ(){ cout<<"age :"< q; q.push(&q1); q.push(&q2); q.push(&q3); while(!q.empty()){ Teacher *tmp; tmp = q.front(); //获取队列头的元素 tmp->printQ(); q.pop(); } return 0; } /* //队列中的基础数据类型, int main(void){ queue q; q.push(1); q.push(2); q.push(3); cout<<"对头元素:"< 5、priority_queue的基本操作
代码如下:
#include#include using namespace std; int main(void){ priority_queue p1; //默认的情况下:是最大优先级队列; priority_queue , less > p2; priority_queue , greater > p3; //是最小的优先级队列 p1.push(33); p1.push(11); p1.push(22); p1.push(77); p1.push(55); p1.push(99); cout<<"队头元素:"< 6、list的基本操作
(1)、list的遍历
代码如下:
#include#include using namespace std; void printL(list
&l){ list ::iterator it; for(it = l.begin(); it != l.end(); it++){ cout<<*it<<" "; } cout< 素的位置; int main(void){ list l; cout<<"list的大小:"< ::iterator it = l.begin(); it++; it++; it++; l.insert(it, 100); //STL中的插入默认是前插; printL(l); //1、list链表的节点的index是从0位置开始的 //2、insert方法都是默认的前插 return 0; } (2)、list的删除
代码如下:
#include#include using namespace std; void printL(list
&l){ list ::iterator it; for(it = l.begin(); it != l.end(); it++){ cout<<*it<<" "; } cout< l; for(int i = 0; i < 10; i++){ l.push_back(i); } list ::iterator it1 = l.begin(); list ::iterator it2 = l.begin(); it2++; it2++; it2++; l.erase(it1, it2); //删除是左闭右开的操作;[0, 3) printL(l); l.erase(l.begin()); printL(l); l.insert(l.begin(), 100); l.insert(l.begin(), 100); l.insert(l.begin(), 100); l.insert(l.begin(), 100); l.insert(l.begin(), 100); printL(l); l.remove(100); //删除元素的方法,删除了所有值为100的元素; printL(l); return 0; }
本文题目:vector,deque,list相关操作
分享路径:http://myzitong.com/article/gpspdo.html