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是順序容器,容器中的元素按照嚴格的線性順序排列,根據位置下標來儲存和訪問元素。同時它也是動態陣列,空間運用比較靈活,隨著元素加入...