C STL Vector常用方法詳解

2021-10-08 04:09:07 字數 1992 閱讀 7818

​ vector陣列 稱為長度根據需要而自動改變的陣列。要使用vector,需要新增標頭檔案#include

vectorname;

​ 其中typename可以是任何基本型別,例如int、double、char、結構體等,也可以是stl標準容器,例如vector、set、queue等

(1). 通過下表訪問

vectorvi;

​ 直接訪問vi[index]即可(如vi[0]、vi[1]…),區間是[0, vi.size()-1]

(2). 通過迭代器訪問

迭代器(interator)可以理解為一種類似指標的東西,其定義是:

vecotr::interator it;

這樣it就得到了迭代器it, 並且可以通過*it來訪問vector裡的元素, 看一段例項**:
#include #include using namespace std;

int main()

for(int i = 0; i < 5; i++)*/

for(vector::iterator it = v.begin(); it != v.end(); it++)

return 0;

} 輸出結果:

0 1 2 3 4

0 1 2 3 4

注:在常用的stl容器中,只有在vector和string中,才允許用v.begin()+3這種迭代器加上整數的寫法

(1). push_back(x) 就是在vector後面新增乙個元素

(2). pop_back() 用以刪除vector的尾元素

(3). size() 用來獲得vector中元素的個數

(4). clear() 用來清空vector中的所有元素

(5). insert(it, x) 用來想vector的任意迭代器it出插入乙個元素x

(6). erase() 兩種用法:刪除單個元素、刪除乙個區間內的所有元素

1. erase(it) 即刪除迭代器為it處的元素

2. erase(first, last) 即刪除[first, last)內的所有元素

(1). 儲存資料

vector本身可以作為陣列使用,而且在一些元素個數不確定的場合可以很好地節省空間

有些場合輸出資料的個數是不確定的,為了方便地處理最後乙個滿足條件不輸出額外的空格,可以先用vector記錄所有需要輸出的資料,然後一次性輸出

(2). 用鄰接表儲存圖

// 4、vector動態陣列

#include

#include

using

namespace std;

struct node};

intmain()

cout

int> ss[10]

;for

(int i =

0; i <

5; i++)}

for(

int i =

0; i <

5; i++

) cout

;for

(int i =

0; i <

5; i++

)for

(int i =

0; i <5+

1; i++)}

return0;

}

3

1 20 0 0 0 0

0 1 2 3 4

0 2 4 6 8

0 3 6 9 12

0 4 8 12 1601

2 31

3 41

4 51

5 61

6 7

C STL vector介紹與使用方法

在前面對比分析裡面提到,vector內部資料結構是動態陣列,也即順序表,因此vector擁有訪問資料快的優點,但同時也有插入 刪除效率低的缺點。同時,由於是動態陣列,因此不需要考慮資料大小的問題,一旦vector記憶體空間不足,會自動重新分配記憶體,然後將資料拷貝到新的記憶體空間。vector也是最...

Mac terminal find 指令常用詳解

如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案 find name rmvb 使用 regex時有一點要注意 regex不是匹配檔名,而是匹配完整的檔名 包括路徑 find regex rmvb 查詢所有 rmvb檔案直接使用 regex是使用的基礎的正則語法,想用高...

xpath mysql xpath定位方法詳解

1.xpath較複雜的定位方法 現在要引用id為 j password 的input元素,可以像下面這樣寫 webelement password driver.findelement by.xpath id j login form dl dt input id j password 其中 id ...