3.3 标准库类型 vector
3.3.1 定义和初始化vector对象
可以默认初始化vector对象
vector<string> svec;
//默认初始化,svec不包含任何元素。
列表初始化vector对象
vector<string> articles ={"a","an","the"};
如果是初始元素值的列表,那么只能放在花括号里进行列表初始化,而不能放在圆括号里。
#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; // 默认初始化
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个默认初始化元素
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对象中添加元素
note
如果for语句中添加vector对象的元素,则不能使用范围for循环。
#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对象
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<<" ";