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);