C++vector的用法你都知道嘛
更新時(shí)間:2022年02月18日 11:51:49 作者:菜雞圣龍進(jìn)化菜松鼠
這篇文章主要為大家詳細(xì)介紹了C++中vector的用法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
C++vector 用法整理
1.頭文件
#include<iostream>//容器 #include<vector> //算法 #include<iterator>//迭代器
一個(gè)代碼示例
#include<iostream>//容器
#include<vector> //算法
#include<iterator>//迭代器
using namespace std;
int main(int argc, const char* argv[])
{
const int SIZE = 6;
int array[SIZE] = {1,2,3,4,5,6};
vector<int> v(array,array+SIZE);
cout<<"First element:"<<v.front()<<"\n Last element"<<v.back()<<endl;
}
2.vector初始化
定義十個(gè)整形元素的向量(其中初值不確定)
vector<int> a(10);
每個(gè)元素初值為1;
vector<int> a(10,1);
類似于深拷貝的整體賦值方式
vector<char> a(b); vector<char> a(b.begin(),b.begin+3);//(a的值為0~2個(gè)元素)
用數(shù)組賦初值(和上面一個(gè)有點(diǎn)相似)
vector<int> a(b, b+7);
3.vector對(duì)象的重要操作
1.賦值(assign)
a.assign(b.begin(),b.begin()+3); //注意!此處,將b 0~2個(gè)元素構(gòu)成的向量賦值給a!與上面不同! a.assign(4,2);// 與vector<int> a(10,1);結(jié)果相同
2.返回元素值
//返回最后一個(gè)元素 a.back(); //返回第一個(gè)元素 a.front(); //數(shù)組返回式 a[i];
3.清空、判斷是否為空
a.clear(); a.empty();
4.刪除
//刪除最后一個(gè)元素 a.pop_back(); //刪除一塊元素 a.erase(a.begin(),a.begin()+3);
5.插入
//在最后一個(gè)向量后插入一個(gè)元素
a.push_back(5);
// 插入一段元素(從第一個(gè)元素算起,插入3個(gè)數(shù),值都為5)
a.insert(a.begin(), 3, 5);
//用數(shù)組插入一段元素(在a的第一個(gè)元素的位置插入b的第3個(gè)元素到第5個(gè)元素)
a.insert(a.begin(), b+1,b+6);
//從現(xiàn)有向量中選擇元素向向量中添加
int a[6] = {1, 2, 3, 4, 5, 6};
vector<int> b;
wector<int> c(a, a+4);
for(vector<int>::iterator it = c.begin(); it<c.end():it++)
{
b.push_back(*it);
}
//從文件讀取元素向向量中添加
ifstream in("data.txt");
vector<int> a;
for(int i;in>>i)
{
a.push_back(i);
}
6.返回vector的現(xiàn)存元素個(gè)數(shù)、共可容納個(gè)數(shù)
a.size(); a.c apacity();
7.調(diào)整元素個(gè)數(shù)(這個(gè)好牛)
//將元素個(gè)數(shù)調(diào)整至10,多刪少補(bǔ),補(bǔ)的值隨機(jī) a.resize(10); //將元素個(gè)數(shù)調(diào)整至10,多刪少補(bǔ),補(bǔ)的值為2 a.resize(10,2); //大容量擴(kuò)充(不補(bǔ)充值) a.reserve(100);
8.整體性交換
a.swap(b);
9.向量的比較操作
a==b; //還有 != >= <= > <
10.重要算法
//從小到大排列 sort(a.begin(), a.end()); //倒置但不排列 reverse(a.begin(),a.end()); //元素復(fù)制 copy(a.begin(),a.end(),b.begin()); //從某一區(qū)塊中查找元素值,返回位置 find(a.begin(),a.end(),10);
4.一些誤區(qū)
下標(biāo)只能獲取已存在的元素,不能進(jìn)行賦值操作
//錯(cuò)誤示例
vector<int> a;
for(int i = 0;i<10;i++)
a[i] = i;
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C語(yǔ)言中判斷兩個(gè)IPv4地址是否屬于同一個(gè)子網(wǎng)的代碼
這篇文章主要介紹了C語(yǔ)言中判斷兩個(gè)IPv4地址是否屬于同一個(gè)子網(wǎng)的代碼,需要的朋友可以參考下2017-09-09
C++實(shí)現(xiàn)LeetCode(115.不同的子序列)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(115.不同的子序列),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C語(yǔ)言與java語(yǔ)言中關(guān)于二維數(shù)組的區(qū)別
這篇文章主要介紹了C語(yǔ)言與java語(yǔ)言中關(guān)于二維數(shù)組的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
C++跳轉(zhuǎn)語(yǔ)句之Goto對(duì)變量定義的影響詳解
goto語(yǔ)句也被稱為無(wú)條件轉(zhuǎn)移語(yǔ)句,這篇文章主要介紹了C++跳轉(zhuǎn)語(yǔ)句之Goto對(duì)變量定義的影響,文中通過(guò)示例代碼解文字介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2016-11-11

