第一次使用vector,感覺網上講的太亂了,整理一下。
vector 是 c++中的一種資料結構,確切的說是乙個類.它相當於乙個動態的陣列,當程式設計師無法知道自己需要的陣列的規模多大時,用其來解決問題可以達到最大節約空間的目的.
用法:
1.檔案包含:
首先在程式開頭處加上#include以包含所需要的類檔案vector
還有一定要加上using namespace std;
2.變數宣告:
2.1 例:宣告乙個int向量以替代一維的陣列:vector a;(等於宣告了乙個int陣列a,大小沒有指定,可以動態的向裡面新增刪除)。
vector 建立舉例:
1 基本操作
(1)標頭檔案#include.
(2)建立vector物件,vector
vec;
(3)尾部插入數字:vec.push_back(a);
(4)使用下標訪問元素,cout
<0]<0開始的。
(5)使用迭代器訪問元素.
vector
::iterator it;
for(it=vec.begin();it!=vec.end();it++)
cout
<<*it<6)插入元素: vec.insert(vec.begin()+i,a);在第i+1個元素前面插入a;
(6)刪除元素: vec.erase(vec.begin()+2);刪除第3個元素
vec.erase(vec.begin()+i,vec.end()+j);刪除區間[i,j-1];區間從0開始
(7)向量大小:vec.size();
(8)清空:vec.c
要明白vector 的使用範圍是很靈活的,可以用來儲存 int, point, rect, struct 等型別。
vector
vec; //int 表示儲存資料型別,vec 為變數名;
vector
vec; //建立儲存point型別的容器
vector
vec; //建立儲存rect型別的容器種vector宣告
vector
v1; //定義空的
vector
v2(10); //產生大小為10的vector
vector
v3(10,-1); //產生大小為10,並且每個元素都是-1的vector
vector
v4(v3); //用乙個vector產生乙個vecotr
int arr[5]=;
vector
v5(arr,&arr[5]); //以區間[beg;end)做為初值的vectoror 的使用不用手動釋放,系統自動釋放
3 如何得到向量中的元素?其用法和陣列一樣:
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交換資料
3.1 詳細的函式實現功能:其中vector
c.
c.clear() 移除容器中所有資料。
c.empty() 判斷容器是否為空。
c.erase(pos) 刪除pos位置的資料
c.front() 傳回第乙個資料。
c.insert(pos,elem) 在pos位置插入乙個elem拷貝
c.pop_back() 刪除最後乙個資料。
c.push_back(elem) 在尾部加入乙個資料。
c.resize(num) 重新設定該容器的大小
c.size() 回容器中實際資料的個數。
c.begin() 返回指向容器第乙個元素的迭代器
c.end() 返回指向容器最後乙個元素的迭代器
「`
使用 vector儲存mat
void get video infor string video 這樣儲存,會出現vector中所有的指標都是指向的frame所指向的資料。也就是 程式執行後,frames中所有的元素指向的都capture最後一幀。可以這麼理解 1,vector中儲存的都指標,push back儲存指標。2,ca...
C 中vector和vector的區別
在使用stl容器 比如map list vector等 的時候,是用放乙個物件還是放乙個物件指標,即是用vector還是vector,這裡的vector可以換成其他的容器,int可以換成其他基本型別,也可以自定義的資料結構或類。首先,要說明的是,這兩種方式,怎麼用都可以實現功能,把一組整型數放到容器...
C 中vector的使用
vector是c 標準模板庫中的容器,能夠操作多種資料結構。1.標頭檔案 include vector屬於std命名域 2.建立vector物件 vectorivec 3.基本操作 1 尾部插入數字 ivec.push back ivec 2 使用下標訪問元素,cout 3 使用迭代器訪問元素 ve...