STL三種序列式容器

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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章