vector

vector

初始化

vector<int> a ; //聲明一個int型向量a
vector<int> a(10) ; //聲明一個初始大小為10的向量
vector<int> a(10, 1) ; //聲明一個初始大小為10且初始值都為1的向量
vector<int> b(a) ; //聲明并用向量a初始化向量b
vector<int> b(a.begin(), a.begin()+3) ; //將a向量中從第0個到第2個(共3個)作為向量b的初始值
vector< vector<int> > b(10, vector<int>(5)); //創(chuàng)建一個10*5的int型二維向量

插入 - insert

a.insert(a.begin(), 1000); //將1000插入到向量a的起始位置前
a.insert(a.begin(), 3, 1000) ; //將1000分別插入到向量元素位置的0-2處(共3個元素)

vector<int> a(5, 1) ;
vector<int> b(10) ;
b.insert(b.begin(), a.begin(), a.end()) ; //將a.begin(), a.end()之間的全部元素插入到b.begin()前

刪除 - erase,clear

a.erase(a.begin()) ; //將起始位置的元素刪除
a.erase(a.begin(), a.begin()+3) ; //將(a.begin(), a.begin()+3)之間的元素刪除
a.clear(); //移除a所有元素

賦值

vector<int> c.
c.assign(a.begin(),a.end()):將[beg; end)區(qū)間中的數(shù)據(jù)賦值給c
c.assign(n,elem):將n個elem的拷貝賦值給c

其他

a.empty(); //判斷容器是否為空
a.front(); //傳回第一個數(shù)據(jù)。
a.back(); //傳回最后一個數(shù)據(jù)
a.pop_back(); //刪除最后一個數(shù)據(jù)。
a.push_back(elem); //在尾部加入一個數(shù)據(jù)。
a.resize(num); //重新設(shè)置該容器的大小,如果它比當(dāng)前使用的大,者填充默認(rèn)值
a.reserve(); //改變當(dāng)前vecotr所分配空間的大小,
a.size(); //回容器中實際數(shù)據(jù)的個數(shù)。
a.capacity(); //當(dāng)前vector分配的大小
a.begin(); //返回指向容器第一個元素的迭代器
a.end(); //返回指向容器最后一個元素的迭代器
a.rbegin(); //將vector反轉(zhuǎn)后的開始指針返回(其實就是原來的end-1)
a.rend(); //將vector反轉(zhuǎn)后的結(jié)束指針返回(其實就是原來的begin-1)
a.at(i),a[i]; //返回第i個元素

總結(jié)

進(jìn)行pop_back操作時,capacity并不會因為vector容器里的元素減少而有所下降,還會維持操作之前的大小。對于vector容器來說,如果有大量的數(shù)據(jù)需要進(jìn)行push_back,應(yīng)當(dāng)使用reserve()函數(shù)提前設(shè)定其容量大小,否則會出現(xiàn)許多次容量擴(kuò)充操作,導(dǎo)致效率低下。

vector以一塊連續(xù)內(nèi)存存放元素,對vector進(jìn)行隨機(jī)訪問效率很高,但是對vector進(jìn)行除末端以外位置的插入或者刪除操作會缺乏效率。vector適合表示數(shù)列。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容