C 模板庫(STL)入門 vector向量

2021-09-11 23:54:58 字數 1111 閱讀 3745

功能:vector翻譯是向量,其實是乙個長度會根據需要改變的陣列。

標頭檔案:#include< vector> 還要加using namespace std;

定義:vector< typename>name; 比如:

vectorname;\\這樣我就定義了乙個int型的邊長陣列

其他型別的以及二維邊長陣列的定義就類似了,需要注意的是兩個維度都是可變的邊長陣列定義

vector> name;訪問:

i. 通過下標訪問:這種方式和普通陣列訪問方式一樣

ii. 通過迭代器(iterator)訪問

我理解的迭代器就類似於指向陣列中某個元素的指標,我

們通過指標來訪問vector中的元素,舉個例子,用**和注釋來理解迭代器

#include#includeusing namespace std;

int main()

vector::iterator it=test.begin();\\test.begin()是獲得向量首位址的函式;這句中我們定義了乙個名字叫it的迭代器,這個迭代器是指向int型的vector的,且我們給它賦值了test的首位址

for(int j;j<6;++j)

{ cout<<*(it+j)《輸出結果

123

45

push_back(i):這個剛剛用過了,作用就是在vector的最後新增乙個元素i

pop_back():顧名思義了,把最後乙個元素彈出,所以括號裡就不用新增引數了

size():也是顧名思義,獲得vector的大小,返回乙個unsigned型別,一般我們用int的輸出沒問題

clear():清空vector中所有的元素

insert():若我要在vector中某個位置加入乙個數,就需要用到insert,用法是insert(it,i),向位址為it的位置插入i。插入i之後,其他元素會向後移動乙個位置,所以這個函式的複雜度是o(n)上面那些都是o(1)。

erase():erase(it)擦除it位址的元素,和insert同理了。更高階的用法是erase(first,last)擦除first到last左閉右開的所有元素

STL標準模板庫 vector

原 2019年02月09日 12 24 18 bbbbbinary 閱讀數 162 更多分類專欄 stl 筆記總結 vector可以看作陣列的增強版,可以用類似陣列的直接取得方式訪問,也可以使用函式操作,好處是可以不用提前規定長度,可以實現不定長度的儲存。需要的標頭檔案 include vector...

STL標準模板庫 vector

原 2019年02月09日 12 24 18 bbbbbinary 閱讀數 162 更多分類專欄 stl 筆記總結 vector可以看作陣列的增強版,可以用類似陣列的直接取得方式訪問,也可以使用函式操作,好處是可以不用提前規定長度,可以實現不定長度的儲存。需要的標頭檔案 include vector...

C 標準模板庫(STL)之vector

vector即長度可變的陣列 標頭檔案宣告 include using namespace std 1.定義 vector int v vectorint age 兩個 之間需加空格,不然會被誤以為是移位操作 vector int vi 100 vector陣列,vi 0 vi 99 每乙個都是乙個...