3.3 標(biāo)準(zhǔn)庫(kù)類型 vector
3.3.1 定義和初始化vector對(duì)象
可以默認(rèn)初始化vector對(duì)象
vector<string> svec;
//默認(rèn)初始化,svec不包含任何元素。
列表初始化vector對(duì)象
vector<string> articles ={"a","an","the"};
如果是初始元素值的列表,那么只能放在花括號(hào)里進(jìn)行列表初始化,而不能放在圓括號(hào)里。
#include<iostream>
#include<vector>
int main()
{
std::vector<int> ivec;
ivec.push_back(1);
std::cout<<ivec[0]<<std::endl;
//列表初始化
std::vector<std::string> articles = {"a","b","c"};
for(int32_t i = 0;i<articles.size();i++)
{
std::cout<<articles[i];
}
std::cout<<std::endl;
std::cout<<articles[0]<<std::endl;
std::vector<int> ivec_same(10,-1);
std::cout<<ivec_same[0]<<std::endl;
int32_t i = 10;
std::vector<int> iDefualtVec; // 默認(rèn)初始化
std::vector<int> iTestCopy(iDefualtVec); //元素拷貝
std::vector<int> iCopyVec(10); //值初始化
std::vector<int> iTest = iCopyVec; //拷貝初始化
std::cout<<iTest[0]<<std::endl;
// std::cout<<iTestCopy[0]<<std::endl;
std::vector<std::string> v5(10);
std::cout<<v5[0]<<std::endl;
std::vector<std::string> v6{10}; //10個(gè)默認(rèn)初始化元素
std::cout<<v6[0]<<std::endl;
std::vector<std::string> v7{2,"hello"};
for(int32_t i = 0;i < v7.size();i++)
{
std::cout<<v7[i];
}
return 0;
}
3.3.2 向Vector對(duì)象中添加元素
note
如果for語(yǔ)句中添加vector對(duì)象的元素,則不能使用范圍for循環(huán)。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v2; // 空vector
for(int32_t i = 0; i < 100; i++)
v2.push_back(i);
for(auto iter = v2.begin();iter!=v2.end();++iter)
cout<<*iter<<" ";
cout<<endl;
string word;
vector<string> text; // 空vector對(duì)象
while(cin>>word)
text.push_back(word);
for(auto iter1 = text.begin(); iter1!=text.end();++iter1)
{
cout<<*iter1<<" ";
}
return 0;
}
求元素的平方
vector<int> vNum;
int32_t iNum = 0;
cout<<"number: ";
while(cin>>iNum)
vNum.push_back(iNum);
for(auto &iResult : vNum)
iResult *= iResult;
for(auto i:vNum)
cout<<i<<" ";