C 容器類Vector 動態陣列

2021-09-17 00:09:45 字數 2752 閱讀 7243

3.vector**示例

大多數程式語言都提供內建的動態陣列,它仍然是乙個隨機訪問的列表資料結構,但大小是可變的。例如,在 c++ 中的

vector

向量(vector)是乙個封裝了動態大小陣列的順序容器(sequence container)(容器類)。跟任意其它型別容器一樣,它能夠存放各種型別的物件。可以簡單的認為,向量是乙個能夠存放任意型別的動態陣列。

1.順序序列

順序容器中的元素按照嚴格的線性順序排序。可以通過元素在序列中的位置訪問對應的元素。

2.動態陣列

支援對序列中的任意元素進行快速直接訪問,甚至可以通過指標算述進行該操作。操供了在序列末尾相對快速地新增/刪除元素的操作。

3.能夠感知記憶體分配器的(allocator-aware)

容器使用乙個記憶體分配器物件來動態地處理它的儲存需求。

c++:迭代器iterator詳解

1.push_back 在陣列的最後新增乙個資料

2.pop_back 去掉陣列的最後乙個資料

3.at 得到編號位置的資料

4.begin 得到陣列頭的指標

5.end 得到陣列的最後乙個單元+1的指標

6.front 得到陣列頭的引用

7.back 得到陣列的最後乙個單元的引用

8.max_size 得到vector最大可以是多大

9.capacity 當前vector分配的大小

10.size 當前使用資料的大小

11.resize 改變當前使用資料的大小,如果它比當前使用的大,者填充預設值

12.reserve 改變當前vecotr所分配空間的大小

13.erase 刪除指標指向的資料項

14.clear 清空當前的vector

15.rbegin 將vector反轉後的開始指標返回(其實就是原來的end-1)

16.rend 將vector反轉構的結束指標返回(其實就是原來的begin-1)

17.empty 判斷vector是否為空

18.swap 與另乙個vector交換資料

#include

intmain()

; vector<

int>

v4(a,*(

&a +1)

);// 3. get length

cout <<

"the size of v4 is: "

<< v4.

size()

<< endl;

// 4. access element

cout <<

"the first element in v4 is: "

<< v4[0]

<< endl;

// 5. iterate the vector

cout <<

"[version 1] the contents of v4 are:"

;for

(int i =

0; i < v4.

size()

;++i)

cout << endl;

cout <<

"[version 2] the contents of v4 are:"

;for

(int

& item : v4)

cout << endl;

cout <<

"[version 3] the contents of v4 are:"

;for

(auto item = v4.

begin()

; item != v4.

end();

++item)

cout << endl;

// 6. modify element

v4[0]

=5;// 7. sort

sort

(v4.

begin()

, v4.

end())

;// 8. add new element at the end of the vector

v4.push_back(-

1);// 9. delete the last element

v4.pop_back()

;}

#include

#include

#include

#include

using namespace std;

intmain()

cout<<

"直接利用陣列:"

;for

(int i=

0;i<

10;i++

)//方法一

cout

"利用迭代器:"

;//方法二,使用迭代器將容器中資料輸出

vector<

int>

::iterator it;

//宣告乙個迭代器,來訪問vector容器,作用:遍歷或者指向vector容器的元素

for(it=obj.

begin()

;it!=obj.

end(

);it++

)return0;

}

C 容器之動態陣列vector

定義vector物件的時候先不用指定陣列的大小,有資料的化就往陣列裡面插入就可以了。vector內部自己管理儲存空間。include 注意沒有.h using namespace std vector是乙個類模板,可以定義任何型別 例 vector arr int 定義了乙個內部元素是int的動態陣...

C 中 vector容器 模板類陣列

對vector容器的一點理解,相對於陣列,vector容器可以不固定大小,但是需要而外的記憶體 空間,這是用空間來換取陣列動態大小的一種方式 1.定義 vector a 定義了乙個空的int型陣列 vectorb n 定義了乙個長度為n的double型陣列 vectorb c 定義乙個c的副本 ve...

C 動態順序容器vector

c 動態順序容器vector 1.vector簡介 vector是c 標準模板庫中的部分內容,是模板類函式。之所以稱它為容器,是因為它能容納多種資料型別的物件。vector是順序容器,容器中的元素按照嚴格的線性順序排列,根據位置下標來儲存和訪問元素。同時它也是動態陣列,空間運用比較靈活,隨著元素加入...