vector的常見用法詳解

2021-10-09 07:36:42 字數 1689 閱讀 5158

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...