1、定義
vectorname;
上面的定義就相當於定義了一維陣列name[size],只是其長度可以根據需要而變化。這裡的typename可以是任何基本型別,例如int,double,char,結構體等,也可以是stl標準容器,例如vector、set、queue等。注意如果typename也是乙個stl容器,定義的時候要記得在》符號之間加入空格,因為一些使用c++11之前標準的編輯器會把它視為移位操作,導致編譯錯誤。
例如:vectorname;
vectorname;
vectorname;
vector> name;
定義vector陣列的方法:
vectorarrayname[arraysize];
例如: vectorvi[100];
與vector>name 不同的是,這種寫法的一維長度已經固定為arraysize,另一維才是「變長」的
2、vector容器內元素的訪問
兩種訪問方式:通過下標訪問或者通過迭代器訪問
2.1 通過下標訪問
直接訪問vi[index]即可,例如(vi[0],vi[1]);
2.2 通過迭代器訪問
迭代器(iterator)可以理解為一種類似指標的東西,其定義是:
vector::iterator it;
例如:vector::iterator it;
這樣就得到了迭代器it,並且可以通過*it來訪問vector裡面的元素
例如:vectorvi;
for(int i=0;i<=5;i++)
vi.push_back(i);
#include#includeusing namespace std;
int main()
為取vi的首元素位址,而it指向這個位址
vector::iterator it = vi.begin();
for(int i=0;i<5;i++)
輸出結果:
1 2 3 4 5
從中可以看出vi[i]和*(vi.begin()+i)是等價的
除此之外,迭代器還實現了兩種自加操作:++it 和 it++
例如:
#include#includeusing namespace std;
int main()
輸出結果:
1 2 3 4 5
注意:在常見stl容器中,只有vector和string中,才允許使用vi.begin()+3這種迭代器加上整數的寫法
3、vector常用函式例項解析
3.1 push_back()
在vector後面新增乙個元素x,時間複雜度o(1)
3.2 pop_back()
刪除vector的尾元素,時間複雜度為o(1)
3.3 size()
獲得vector中的元素,時間複雜度為o(1)
3.4 clear()
清空vector中所有元素,時間複雜度為o(n)
3.5 insert()
insert(it,x)用來向vector的任意迭代器it處插入乙個元素x,時間複雜度為o(n)
例如:
#include#includeusing namespace std;
int main()
輸出結果:
5 9
vector常見用法詳解
vector常見用法詳解 vector是乙個線性順序結構,相當於陣列,可以不預先指定陣列的大小,並且能夠自動擴建。建立乙個vector後,它會自動在記憶體中分配一塊連續的 記憶體空間進行資料儲存,這個大小即capacity 函式的返回值。當儲存的資料 超過分配的空間時,vector會重新分配一塊記憶...
vector 常見用法
初始化 vectorv vectorv vec.begin vec.begin 3 用向量vec的第0個到第2個值初始化tmp vectorv arr,arr 5 將arr陣列的元素用於初始化vec向量 1 容量 向量大小 v.size 向量判空 v.empty 2 修改 末尾新增元素 v.push...
vector的常見用法
1.標頭檔案 include2.vector宣告及初始化 vectorvec 宣告乙個int型向量 vectorvec 5 宣告乙個初始大小為5的int向量 vectorvec 10,1 宣告乙個初始大小為10且值都是1的向量 vectorvec tmp 宣告並用tmp向量初始化vec向量 vect...