1. 程式人生 > >C++中vector 和 Mat 的使用舉例

C++中vector 和 Mat 的使用舉例

第一次使用vector,感覺網上講的太亂了,整理一下。

vector 是 C++中的一種資料結構,確切的說是一個類.它相當於一個動態的陣列,當程式設計師無法知道自己需要的陣列的規模多大時,用其來解決問題可以達到最大節約空間的目的.
用法:
1.檔案包含:
首先在程式開頭處加上#include以包含所需要的類檔案vector
還有一定要加上using namespace std;

2.變數宣告:
2.1 例:宣告一個int向量以替代一維的陣列:vector a;(等於聲明瞭一個int陣列a[],大小沒有指定,可以動態的向裡面新增刪除)。

vector 建立舉例:
1 基本操作

(1)標頭檔案#include<vector>.
(2)建立vector物件,vector<int> vec;
(3)尾部插入數字:vec.push_back(a);
(4)使用下標訪問元素,cout<<vec[0]<<endl;記住下標是從0開始的。
(5)使用迭代器訪問元素.
vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
    cout<<*it<<endl;(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<int> vec; //int 表示儲存資料型別,vec 為變數名; vector<point> vec; //建立儲存point型別的容器 vector<Rect>
vec; //建立儲存Rect型別的容器種vector宣告 vector<int> v1; //定義空的 vector<int> v2(10); //產生大小為10的vector vector<int>v3(10,-1); //產生大小為10,並且每個元素都是-1的vector vector<int>v4(v3); //用一個vector產生一個vecotr int arr[5]={1,2,3,4,5}; vector<int>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<int> 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() 返回指向容器最後一個元素的迭代器
“`