vector,deque,list
vector
#include <vector>
vector提供多种构造函数:
vector<int> v1(3);
vector<int> v2(3,2);
vector<int> v3(v1.begin(),v1.begin()+2);
int src[] = {1,2,3,4,5,6};
vector<int> v4(src,src+sizeof(src)/sizeof(int));
很多构造函数类似v1.assign. assign为将assign(beg,end)这个区间拷贝给容器。或assign(n,elem)将n个elem拷贝给容器。
插入和删除
插入
insert三种不同的使用方式:
vector<int> v,v1;
vector<int>::iterator iter;
int a = 5;
iter = v.insert(v.begin(),a); //在v.begin()处插入a的拷贝,传回新数据位置
v1.insert(v1.begin(),v.begin(),v.end()); //在v1.begin()处插入参数2,3构成的区间,无返回值。
v1.insert(v1.begin(),5,3); //在v1.begin()处插入5个3,无返回值。
删除
删除有两种方式
vector<int> v3(v1);
v3.erase(pos); //删除pos位置的数据,返回下一个值的位置。
v3.erase(beg,end); //删除[beg,end)区间的数据,返回下一个值的位置。
其他
vector<int> v4;
v4.capacity(); //返回容器中数据个数。
v4.size(); //返回容器中实际数据个数。
v4.reserve(num); //改变容器容量。改变的是capacity的返回值。
v4.pop_back(); //删除容器中最后一个值。
v4.push_back(elem);//在尾部加一个数据。
v4.front; //返回第一个数据
v4.back; //返回最后一个数据不检查是否存在。
v4.swap(c1,c2);
copy(beg,end,wherebegin);