是一個能夠存放任意類型的動態數組。
簡單的用法:
vectortest;//建立一個vector
test.push_back(1);
test.push_back(2);//把1和2壓入vector這樣test[0]就是1,test[1]就是2
int i =test.at(1);//at訪問,i爲2
//注意是從0 開始的
頭文件#include<vector>.
創建vector對象,vector<int> vec;
尾部插入數字:vec.push_back(a);
插入元素: vec.insert(vec.begin()+i,a);在第i+1個元素前面插入a;
刪除元素: vec.erase(vec.begin()+2);刪除第3個元素
vec.erase(vec.begin()+i,vec.end()+j);刪除區間[i,j-1];區間從0開始
向量大小:vec.size();
清空:vec.clear();
vector的元素不僅僅可以使int,double,string,還可以是結構體,但是要注意:
結構體要定義爲全局的
vector<int> c.
c.clear() 移除容器中所有數據。
c.empty() 判斷容器是否爲空。
c.erase(pos) 刪除pos位置的數據
c.erase(beg,end) 刪除[beg,end)區間的數據
c.front() 傳回第一個數據。
c.insert(pos,elem) 在pos位置插入一個elem拷貝
c.pop_back() 刪除最後一個數據。
c.push_back(elem) 在尾部加入一個數據。
c.resize(num) 重新設置該容器的大小
c.size() 回容器中實際數據的個數。
c.begin() 返回指向容器第一個元素的迭代器
c.end() 返回指向容器最後一個元素的迭代器
Vector成員函數
函數
表述
c.assign(beg,end) 將[beg; end)區間中的數據賦值給c。
c.assign(n,elem) 將n個elem的拷貝賦值給c。
c.at(idx) 傳回索引idx所指的數據,如果idx越界,拋出out_of_range。
c.back() 傳回最後一個數據,不檢查這個數據是否存在。
c.begin() 傳回迭代器重的可一個數據。
c.capacity() 返回容器中數據個數。
c.clear() 移除容器中所有數據。
c.empty() 判斷容器是否爲空。
c.end() 指向迭代器中的最後一個數據地址。
c.erase(pos) 刪除pos位置的數據,傳回下一個數據的位置。
c.erase(beg,end) 刪除[beg,end)區間的數據,傳回下一個數據的位置。
c.front() 傳回第一個數據。
get_allocator 使用構造函數返回一個拷貝。
c.insert(pos,elem) 在pos位置插入一個elem拷貝,傳回新數據位置。
c.insert(pos,n,elem) 在pos位置插入n個elem數據。無返回值。
c.insert(pos,beg,end) 在pos位置插入在[beg,end)區間的數據。無返回值。
c.max_size() 返回容器中最大數據的數量。
c.pop_back() 刪除最後一個數據。
c.push_back(elem) 在尾部加入一個數據。
c.rbegin() 傳回一個逆向隊列的第一個數據。
c.rend() 傳回一個逆向隊列的最後一個數據的下一個位置。
c.resize(num) 重新指定隊列的長度。
c.reserve() 保留適當的容量。
c.size() 返回容器中實際數據的個數。
c1.swap(c2) 將c1和c2元素互換。
swap(c1,c2) 同上操作。
vector<Elem> c 創建一個空的vector。
vector <Elem> c1(c2) 複製一個vector。
vector <Elem> c(n) 創建一個vector,含有n個數據,數據均已缺省構造產生。
vector <Elem> c(n, elem) 創建一個含有n個elem拷貝的vector。
vector <Elem> c(beg,end) 創建一個以[beg;end)區間的vector。
c.~ vector <Elem>() 銷燬所有數據,釋放內存。