STL vector基本用法

2021-08-11 01:33:32 字數 1997 閱讀 5748

vector的資料安排以及操作方式,與array非常相似。兩者的唯一區別在於空間的運用的靈活性。array是靜態空間,一旦配置了就不能改變。vector是動態空間,隨著元素的加入,它的內部機制會自行擴充空間以容納新元素。因此,vector的運用對於記憶體的合理利用與運用的靈活性有很大的幫助,我們再也不必因為害怕空間不足而一開始要求乙個大塊的array。

vector動態增加大小,並不是在原空間之後持續新空間(因為無法保證原空間之後尚有可供配置的空間),而是以原大小的兩倍另外配置一塊較大的空間,然後將原內容拷貝過來,然後才開始在原內容之後構造新元素,並釋放原空間。因此,對vector的任何操作,一旦引起空間重新配置,指向原vector的所有迭代器就都失效了。

1 #include 2 #include 3 #include 

4 #include 5

using

namespace

std;67

intmain()8;

10//

建立乙個空vector容器

11 vectorv1;

12//

建立乙個有10個空元素的vector容器

13 vector v2(10

);14

//建立乙個有10個元素的vector容器,並為每個元素賦值為0

15 vector v3(10,0

);16

//根據字串陣列建立vector容器

17 vector v4(str,str + 3

);18

19//

迭代器法遍歷

20 vector::iterator sit =v4.begin();

21while(sit !=v4.end())

24 cout<

2526

//拷貝構造

27 vectorv5(v4);

28//

下標法遍歷

vector建立二維陣列:

1 #include   2 #include   3

using

namespace

std;

4int

main()

520 cout<

after resizing:

"<

21//

新增兩行,對列也要重新設定大小

22 array.resize(5

);23 array[3].resize(3

);24 array[4].resize(3

);25

//現在是5x3的陣列了

二維陣列去除重複行:

1 res.erase(unique(res.begin(), res.end()), res.end());

二維陣列迭代輸出:

1 vectorint>>::iterator ie;

23 vector::iterator it;

4for(ie=array.begin();ie)

510 cout<

11 }

STL vector基本用法

vector的資料安排以及操作方式,與array非常相似。兩者的唯一區別在於空間的運用的靈活性。array是靜態空間,一旦配置了就不能改變。vector是動態空間,隨著元素的加入,它的內部機制會自行擴充空間以容納新元素。因此,vector的運用對於記憶體的合理利用與運用的靈活性有很大的幫助,我們再也...

STL vector的基本用法

include includeusing namespace std vector容器 void test01 輸出1,2,3,6,6,9,9,9,13,13.容量的擴法。以及並不是按兩倍去擴 void printvector vector v cout endl vector建構函式 vector...

STL vector用法及模板

方便檢視 在stl的標頭檔案中定義了vector 向量容器模板類 vector容器以連續陣列的方式儲存元素序列,可以將vector看作是以順序結構實現的線性表。當我們在程式中需要使用動態陣列時,vector將會是理想的選擇,vector可以在使用過程中動態地增長儲存空間。vector模板類需要兩個模...