C++——之vector的用法

vector的用法

作用:它能夠像容器一樣存放各種類型的對象,簡單地說,vector是一個能夠存放任意類型的動態數組,能夠增加和壓縮數據。vector是C++標準模板庫中的部分內容,它是一個多功能的,能夠操作多種數據結構和算法的模板類和函數庫。

特別注意:
使用vector需要注意以下幾點:
1、如果你要表示的向量長度較長(需要爲向量內部保存很多數),容易導致內存泄漏,而且效率會很低;
2、vector作爲函數的參數或者返回值時,需要注意它的寫法:
double Distance(vector< int >&a, vector< int >&b) 其中的“&”絕對不能少!!!

文件包含:

#include< vector >以包含所需要的類文件vector
using namespace std;

變量聲明:

例1:聲明一個int向量以替代一維的數組:vector < int >a;
(等於聲明瞭一個int數組a[],大小沒有指定,可以動態的向裏面添加刪除)。
例2:用vector代替二維數組.
其實只要聲明一個一維數組向量即可,而一個數組的名字其實代表的是它的首地址,所以只要聲明一個地址的向量即可,即:vector < int * > a.同理想用向量代替三維數組也是一樣,vector < int >a**;再往上面依此類推.

具體的用法以及函數調用

vector<int> vec;//創建vector對象
vec.push_back(a);//尾部插入a
cout<<vec[0]<<endl;//使用下標訪問元素,(記住下標是從0開始的)

//使用迭代器訪問元素.
    vector<int>::iterator it;
           for(it=vec.begin();it!=vec.end();it++)
            cout<<*it<<endl;
            
 vec.insert(vec.begin()+i,a);在第i+1個元素前面插入a;
 vec.erase(vec.begin()+2);刪除第3個元素
 vec.erase(vec.begin()+i,vec.end()+j);刪除區間[i,j-1];區間從0開始
 vec.size();//向量大小: 
 vec.clear();//清空:       

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交換數據

函數實現功能:其中vector < int > c.

c.clear() 移除容器中所有數據。
c.empty() 判斷容器是否爲空。
c.erase(pos) 刪除pos位置的數據
c.erase(beg,end) 刪除[beg,end)區間的數據
c.front() 傳回第一個數據。
c.insert(pos,elem) 在pos位置插入一個elem拷貝
c.pop_back() 刪除最後一個數據。
c.push_back(elem) 在尾部加入一個數據。
c.resize(num) 重新設置該容器的大小
c.size() 回容器中實際數據的個數。
c.begin() 返回指向容器第一個元素的迭代器
c.end() 返回指向容器最後一個元素的迭代器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章