STL備忘錄——vector

前言

vector是c++中非常常用的容器之一泞当。我們可以把它理解為一個(gè)封裝好的數(shù)組迹蛤。它的儲(chǔ)存方式是通過(guò)連續(xù)地址儲(chǔ)存的順序結(jié)構(gòu),原理和數(shù)組類似零蓉,但它同時(shí)又提供了insert,erase這些方法笤受。

從它的原理中穷缤,我們就可以猜到敌蜂。vector的讀取速度非常快津肛。但在寫(xiě)入尤其是插入方面的性能是無(wú)法和list相比的章喉。

引入

#include<vector>

構(gòu)造方法

// 創(chuàng)建一個(gè)默認(rèn)的vector
vector<int> v = vector<int>();

// 創(chuàng)建一個(gè)長(zhǎng)度為3的vector
vector<int> v = vector<int>(3);

// 創(chuàng)建一個(gè)長(zhǎng)度為5,且初始值全部為1的vector
vector<int> v = vector<int>(5,1);

vector<int> v = vector<int>();

// 在尾部插入元素 
v.push_back(10);

// 在中間插入元素
v.insert(v.begin()+i,a);

這里要注意,在使用insert方法時(shí)秸脱,一定要配合.begin()使用落包,不能直接傳入索引始衅。

vector<int> v = vector<int>();

// 獲取v首個(gè)元素的迭代器
v.begin()

// 獲取v最后一個(gè)元素的迭代器
v.end();

// 獲取v的第3個(gè)元素的值
v[3]

遍歷

vector<int> vec = vector<int>();

vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
    cout<<*it<<endl;

vector<int> vec = vector<int>();

// 刪除第2個(gè)元素
vec.erase(vec.begin()+2);

// 清空vec
vec.clear();

獲取長(zhǎng)度

vector<int> vec = vector<int>();

// 獲取vec的長(zhǎng)度
vec.size();

算法

(1) 使用reverse將元素翻轉(zhuǎn):需要頭文件#include<algorithm>

reverse(vec.begin(),vec.end());將元素翻轉(zhuǎn)(在vector中模她,如果一個(gè)函數(shù)中需要兩個(gè)迭代器,一般后一個(gè)都不包含.)

(2)使用sort排序:需要頭文件#include<algorithm>鸭栖,

sort(vec.begin(),vec.end());(默認(rèn)是按升序排列,即從小到大).

可以通過(guò)重寫(xiě)排序比較函數(shù)按照降序比較巷查,如下:

定義排序比較函數(shù):

bool Comp(const int &a,const int &b)
{
    return a>b;
}

調(diào)用時(shí):sort(vec.begin(),vec.end(),Comp)有序,這樣就降序排序。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末岛请,一起剝皮案震驚了整個(gè)濱河市旭寿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌崇败,老刑警劉巖盅称,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異后室,居然都是意外死亡缩膝,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門岸霹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)逞盆,“玉大人,你說(shuō)我怎么就攤上這事松申≡坡” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵贸桶,是天一觀的道長(zhǎng)舅逸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)皇筛,這世上最難降的妖魔是什么琉历? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮水醋,結(jié)果婚禮上旗笔,老公的妹妹穿的比我還像新娘。我一直安慰自己拄踪,他們只是感情好蝇恶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著惶桐,像睡著了一般撮弧。 火紅的嫁衣襯著肌膚如雪潘懊。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天贿衍,我揣著相機(jī)與錄音授舟,去河邊找鬼。 笑死贸辈,一個(gè)胖子當(dāng)著我的面吹牛释树,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播擎淤,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼躏哩,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了揉燃?” 一聲冷哼從身側(cè)響起扫尺,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炊汤,沒(méi)想到半個(gè)月后正驻,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抢腐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年姑曙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迈倍。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伤靠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出啼染,到底是詐尸還是另有隱情宴合,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布迹鹅,位于F島的核電站卦洽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏斜棚。R本人自食惡果不足惜阀蒂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弟蚀。 院中可真熱鬧蚤霞,春花似錦、人聲如沸义钉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)断医。三九已至滞乙,卻和暖如春奏纪,著一層夾襖步出監(jiān)牢的瞬間鉴嗤,已是汗流浹背斩启。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留醉锅,地道東北人兔簇。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像硬耍,于是被迫代替她去往敵國(guó)和親垄琐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容