C 中vector 和 Mat 的使用舉例

2021-07-24 10:24:51 字數 2566 閱讀 5723

第一次使用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...