C++的vector用法詳解?。?!強(qiáng)大索引,一目了然,分分鐘搞定!??!-創(chuàng)新互聯(lián)

新手創(chuàng)作中,歡迎在評(píng)論區(qū)指教~
如果該文章對(duì)你確有幫助,希望可以點(diǎn)個(gè)贊,讓我元?dú)鉂M滿~
持續(xù)更新中,點(diǎn)擊關(guān)注不迷路~
話不多說(shuō),直接上代碼?。?!

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、河津網(wǎng)絡(luò)推廣、微信小程序開發(fā)、河津網(wǎng)絡(luò)營(yíng)銷、河津企業(yè)策劃、河津品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供河津建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:muchs.cn1 初始化 1.1 一維
#include// 頭文件
// 1.指定大小不帶初值的初始化
vectorvec(9); // 大小為9,初始值不確定(對(duì)于int類型,一般默認(rèn)為0)
// 2.直觀的初始化
vectorvec{1,2,3,4,5,6,7,8};
// 3.批量初始化
int size=10;
vectorvec(size,1); // 容器vec大小為10,初始值為1
// 4.通過(guò)其他容器初始化
// 假設(shè)容器b為{1,2,3,4,5}
vectorvec(b); // 整個(gè)拷貝
vectorvec(b.begin()+n,b.begin()+m); // 局部拷貝,從b.begin()+n開始,賦值(m-n)個(gè)元素
// 5.通過(guò)數(shù)組初始化
// 注意不能直接拷貝整個(gè)數(shù)組!
int b[7]={6,5,4,3,2,1,0};
vectorvec(b+n,b+m); // 與上類似
1.2 二維
// vec大小為4,子數(shù)組大小為5 (4行5列)
// 指定了大小,默認(rèn)值初始化為0,不要使用push_back()添加元素,采用vec[i][j]=num直接賦值
vector>vec(4,vector(5));
2 常用方法 2.1 增 2.1.1 assign()
// 假設(shè)容器b為{4,3,2,1}
vec.assign(b.begin()+n,b.begin()+m); // 從b.begin()+n開始,拷貝(m-n)個(gè)元素
vec.assign(10,1); // 容器大小為10,初值為1
2.1.2 push_back()
// 假設(shè)容器vec為{4,3,2,1}
vec.push_back(0); // 像容器vec最后插入元素0,vec變成{4,3,2,1,0}
2.1.3 insert()
// 假設(shè)容器vec為{4,3,2,1}
vec.insert(vec.begin()+1,-9); // 在索引1的位置插入一個(gè)元素,其值為-9
// 容器vec變?yōu)閧4,-9,3,2,1}

//-----------------------------------------------------------------

// 假設(shè)容器vec2為{4,3,2,1}
vec2.insert(vec2.begin()+1,2,5); // 在索引1的位置插入2個(gè)元素,其值為5
// 容器vec2變?yōu)閧4,5,5,3,2,1}

//-----------------------------------------------------------------

// 假設(shè)容器vec3為{4,3,2,1},容器b為{6,7,8,9}
vec3.insert(vec3.begin()+1,b.begin()+1,b.begin()+3);
// 容器vec3變?yōu)閧4,7,8,3,2,1}
2.2 刪 2.2.1 pop_back()
// 假設(shè)容器vec為{4,3,2,1}
vec.pop_back(); // 刪除vec的最后一個(gè)元素1
2.2.2 erase()
// 假設(shè)容器vec為{4,3,2,1}
vec.erase(vec.begin()+1); // 刪除索引為1的元素,vec變?yōu)閧4,2,1}

//-------------------------------------------------------------------------

// 假設(shè)容器vec2為{4,3,2,1}
vec2.erase(vec2.begin()+n,vec2.begin()+m); // 從第n個(gè)元素開始,刪除(m-n)個(gè)元素
2.2.3 clear()
// 假設(shè)容器vec為{4,3,2,1}
vec.clear(); //清空vec中的所有元素
2.3 改 2.3.1 resize()
// 假設(shè)容器vec為{4,3,2,1}
vec.resize(10); // 將容器vec大小調(diào)至10,會(huì)補(bǔ)充元素,值隨機(jī)(一般為0)
// 假設(shè)容器vec2為{4,3,2,1}
vec2.resize(3); // 將容器vec2大小調(diào)至3,會(huì)刪除元素,值隨機(jī)(一般從末尾刪除)
// 假設(shè)容器vec3為{4,3,2,1}
vec3.resize(10,2); // 將容器vec3大小調(diào)至10,補(bǔ)充元素,值指定為2
2.3.2
// 假設(shè)容器vec為{4,3,2,1}
// 假設(shè)容器vec2為{5,6,7,8,9}
vec.swap(vec2); // vec變?yōu)閧5,6,7,8,9},vec2變?yōu)閧4,3,2,1}
2.3.3 reverse()
// 假設(shè)容器vec為{4,3,2,1}
reverse(vec.begin(),vec.end()); // vec變?yōu)閧1,2,3,4}
2.4 查 2.4.1 find()
// 假設(shè)容器vec為{4,3,4,2,1,0}

// 返回元素ele在vec中的第一個(gè)索引,ele為4時(shí)返回index=0
// 若未找到指定的元素,返回下標(biāo)為vec.size()
int index=find(vec.begin(),vec.end(),ele)-vec.begin();

// 返回元素ele在vec中的第一個(gè)索引(從右往左看,索引也是從右開始),ele為4時(shí)返回index=3
// 若未找到指定的元素,返回下標(biāo)為vec.size()
int index2=find(vec.rbegin(),vec.rend(),ele)-vec.rbegin();
2.4.2 front()和back()
// 假設(shè)容器vec為{4,3,2,1}
vec.front(); //返回第一個(gè)元素4
vec.back(); // 返回最后一個(gè)元素1
2.4.3 empty()
// 假設(shè)容器vec為{4,3,2,1}
vec.empty(); //判斷vec是否為空,空則返回true;不空則返回false
2.4.4 size()
// 假設(shè)容器vec為{4,3,2,1,0}
vec.size() // 返回容器大小,值為5
3 其他方法 3.1 排序
vectorvec{7,5,9,2,4,1};
sort(vec.begin(),vec.end()); // 正常升序排序
// vec是二維數(shù)組[[1,2],[4,6],[3,5]]
sort(vec.begin(),vec.end(),cmp); // 自定義排序,cmp是自定義函數(shù)
bool static cmp(vector& a,vector& b) { // 按子數(shù)組右區(qū)間升序排序
    return a[1]
3.2 求和
vectornum{0,1,2,3};
accumulate(num.begin(),num.end(),0); // 6 (第三個(gè)參數(shù)是累加的初值)
3.3 遍歷
// 1.通過(guò)迭代器遍歷
// 假設(shè)容器vec為{4,3,2,1}
vector::iterator iter;
for(iter=vec.begin();iter!=vec.end();iter++) {
    cout<<*iter<
// 2.通過(guò)索引遍歷
// 假設(shè)容器vec為{4,3,2,1}
for(int i=0;i
// 3.通過(guò)auto遍歷
// 假設(shè)容器vec為{4,3,2,1}
for(auto ele:vec) {
    cout<
3.4 判斷指定元素是否存在
// 假設(shè)vec為{4,3,2,1}
vector::iterator iter=find(vec.begin(),vec.end(),num);
if(iter!=vec.end()) cout<<*iter<

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁(yè)名稱:C++的vector用法詳解!??!強(qiáng)大索引,一目了然,分分鐘搞定?。。?創(chuàng)新互聯(lián)
本文URL:http://muchs.cn/article24/dejsje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計(jì)靜態(tài)網(wǎng)站、網(wǎng)站制作、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)