STL之vector動態陣列(詳解)

2022-06-01 15:42:10 字數 1470 閱讀 6278

vector收錄在stl裡,是一種特殊的資料結構。它的中文名字叫做「動態陣列」或者「不定長陣列」,有時也被翻譯成「容器」。

基本操作:

1、構造乙個vector:vectorvec。其中t是我們陣列要儲存的資料型別,可以是int、float、double等。初始的時候vec是空的 。

2、通過push_back()方法在陣列最後面插入乙個新的元素。

3、通過size()方法獲取vector的長度,通過操作直接訪問 vector中的元素,和陣列是一樣的。

4、修改vector中某個元素的話,只需要用=給它賦值來修改vector中某個元素。

5、呼叫clear()方法就可清空vector。

例子如下:

1 #include//

不要忘記打頭檔案

2using

namespace

std;3//

定義方法:

4 vector myvec;//

一開始先定義乙個整型的空的vector動態陣列5//

也可以先賦給它初始值:

6 vector m(a,b); //

在m裡裝a個b

7 vector n(a);//

在n裡裝a個0,通常可以省略"(a)"8//

也可以這麼玩:

9 vector a(myvec);//

定義乙個和myvec一模一樣的動態陣列

10 vector b(a.begin()+l,a.end()-r);//

繼承a動態陣列下標[l,a.end()-r)的值,注意,下標從0開始

11int

main()

34//

如果需要遍歷元素,還可以使用迭代器。(反正我是不會,大神可以繼續)

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

38//

vector的刪除

39 myvec.pop_back()//

刪除最後乙個元素

40 myvec.erase(myvec.begin()+k);//

刪除下標為k的數,返回下乙個位置的下標

41 myvec.erase(myvec.begin()+l,myvec.end()-r);//

刪除下標[l,myvec.end()-r)的元素

42 myvec.clear();//

清空vector動態陣列

43//

打**時千萬不要忘記它是從vec[0]開始的 !

44//

除myvec[i]外,其餘都是vector的自帶函式,因此必須添上括號!

45 }

有關vector的記憶體機制和效能分析可以參考這個**:

不要嘗試自己測試,除非你對自己的電腦有很大的信心,反正我用學校機房電腦測試了一下直接藍屏了…… 

STL 動態陣列 vector

動態陣列,使用時需要加標頭檔案vector。它的特點可以實現動態增長的陣列。也就是說我們不必關心該陣列事先定義的容量是多少,它的大小會動態增長。與陣列類似的是,我們可以在末尾進行元素的新增和刪除,也可以進行元素值的隨機訪問和修改。include include include vector 的建立 ...

C 與 STL 動態陣列 vector

摘自 博主柳婼 vector 是乙個模板類 所以使用時要用 vectora 或者vectorb 這樣的方式來宣告乙個 vector vector 是乙個類似於 int a 的整數陣列,而 vector 是乙個類似於 string a 的字串陣列 clear 清空resize 改變大小 push ba...

STL學習筆記 vector容器 動態陣列

簡介 vector是將元素置於乙個動態陣列中進行管理的容器 vector可以隨機訪問元素,支援索引值直接訪問,用或者at 方法 vector下尾部新增或者刪除元素非常快,但在中間或頭部插入或者刪除元素比較耗時 標頭檔案 include vector基本操作 vectorv v.push back 1...