要想使用vector,必须包含头文件#include<vector>
- 定义和初始化vector对象
- 默认初始化vector对象,创建一个指定类型的空vector: vector<string> svec;
- 列表初始化vector对象,用花括号括起来的初始元素值赋给vector对象;vector<string> articles = {"an", "the"}
- 创建指定数量的元素,注意这种方法只能使用直接初始化,而不能拷贝;vector<string> sevc(10,"hi!")
2. 向vector对象中添加对象
经常我们创建一个vector时并不清楚实际所需的元素个数,元素的值也无法确定,此时更好的处理办法是:先创建一个空vector,然后在运行时再利用vector的成员函数push_back向其中添加元素(添加到vector对象元素的尾端)。
- 示例:把0—99添加到vector对象v2中
vector<int> v2;
for(int i=0;i !=100;++i)
v2.push_back(i);
- 示例:从标准输入中读取单词,将其作为vector对象的元素存储
string word;
vector<string> text;
while(cin>>word)
text.push_back(word);
- 注意:如果循环体内部包含有向vector对象添加元素的语句,则不能使用范围for循环。
除了push_back之外,vector还提供了几种其他操作,大多数的和string相关操作类似:
v.empty()
v.size() //返回v中元素的个数
v[n] //返回v中第n个位置上元素的引用
v1=v2;
v1={a,b,c...};
v1==v2;
v1<v1...;
- 可以使用范围for语句处理vector对象中的的所有元素
vector<int> v{1,2,3,4,5,6,7,8};
for(auto &i:v)
i*=i;
for(auto i:v)
cout<<i<<" ";
cout<<endl;
- 使用下标运算符能获取到指定的元素,下标起始于0,类型是vector::size_type.注意不能用下标形式添加元素。
<span style="font-weight: normal;">vector<unsigned> scores(11,0);
unsigned grade;
while(cin>>grade)
{
if(grade<=100)
</span><pre name="code" class="cpp" style="font-size: 18px;"><span style="font-weight: normal;"> {
grade=grade/10;
++scores[grade];</span></span>