新手創(chuàng)作中,歡迎在評論區(qū)指教~
如果該文章對你確有幫助,希望可以點個贊,讓我元氣滿滿~
持續(xù)更新中,點擊關(guān)注不迷路~
話不多說,直接上代碼?。。?/p>
#include// 頭文件
// 1.指定大小不帶初值的初始化
vectorvec(9); // 大小為9,初始值不確定(對于int類型,一般默認為0)
// 2.直觀的初始化
vectorvec{1,2,3,4,5,6,7,8};
// 3.批量初始化
int size=10;
vectorvec(size,1); // 容器vec大小為10,初始值為1
// 4.通過其他容器初始化
// 假設(shè)容器b為{1,2,3,4,5}
vectorvec(b); // 整個拷貝
vectorvec(b.begin()+n,b.begin()+m); // 局部拷貝,從b.begin()+n開始,賦值(m-n)個元素
// 5.通過數(shù)組初始化
// 注意不能直接拷貝整個數(shù)組!
int b[7]={6,5,4,3,2,1,0};
vectorvec(b+n,b+m); // 與上類似
1.2 二維// vec大小為4,子數(shù)組大小為5 (4行5列)
// 指定了大小,默認值初始化為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)個元素
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的位置插入一個元素,其值為-9
// 容器vec變?yōu)閧4,-9,3,2,1}
//-----------------------------------------------------------------
// 假設(shè)容器vec2為{4,3,2,1}
vec2.insert(vec2.begin()+1,2,5); // 在索引1的位置插入2個元素,其值為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的最后一個元素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個元素開始,刪除(m-n)個元素
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,會補充元素,值隨機(一般為0)
// 假設(shè)容器vec2為{4,3,2,1}
vec2.resize(3); // 將容器vec2大小調(diào)至3,會刪除元素,值隨機(一般從末尾刪除)
// 假設(shè)容器vec3為{4,3,2,1}
vec3.resize(10,2); // 將容器vec3大小調(diào)至10,補充元素,值指定為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中的第一個索引,ele為4時返回index=0
// 若未找到指定的元素,返回下標(biāo)為vec.size()
int index=find(vec.begin(),vec.end(),ele)-vec.begin();
// 返回元素ele在vec中的第一個索引(從右往左看,索引也是從右開始),ele為4時返回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(); //返回第一個元素4
vec.back(); // 返回最后一個元素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 (第三個參數(shù)是累加的初值)
3.3 遍歷// 1.通過迭代器遍歷
// 假設(shè)容器vec為{4,3,2,1}
vector::iterator iter;
for(iter=vec.begin();iter!=vec.end();iter++) {
cout<<*iter<
// 2.通過索引遍歷
// 假設(shè)容器vec為{4,3,2,1}
for(int i=0;i
// 3.通過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海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧