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;
}
31 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 ...