vector:相同类型对象的集合(不能包含引用,引用不是对象),有索引,是一个类模板,通常称容器。
初始化:与string有些类似,但也有些不同
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<string> v;//类型为string的空vector,执行默认初始化
vector<string> v1(v);//包含的副本,类型必须相同
vector<string> v2=v;//类似于上面
vector<string> v3(5,"a");//不管是字符,字符串还是数字,后面都是双引号
vector<string> v4(5);//只有个数,没有值,则初始化空的string对象
vector<string> v5{"1","2"};
vector<string> v6={"1","2"};//同上
//可以根据括号的类型来判别,圆括号表示构造,花括号表示初始化
vector<int> v7(5);//构造5个int元素都为0
vector<int> v8{5};//只有一个元素5
return 0;
}
有时候要创建空的vector,则要向vector中添加元素,用vector的成员函数push_back,如果向vector中添加元素则不能使用范围for循环。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v;
for(int i=0;i!=5;i++)//增加元素不能用范围for,对已有的元素操作和遍历可以用
{
v.push_back(i);//从尾端添加
}
for(auto c : v)// 对元素进行操作要用&,不操作可以不用&
{
cout<<c<<endl;
}
return 0;
}
打印:1 2 3 4 5
vector中的empty和size成员和string类似
vector下标:下标类型为size_type,可以通过下标查找元素,但不能用下标添加元素,因为只能对已存在的元素执行下标操作。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int a,b=0;
vector<int> v(5,0);//初始化为5个0
while(cin>>a)
{
v[b]=a;//b刚开始为0,则表示第一个元素
b++;//下标前移
}
for(auto c : v)
{
cout<<c<<;
}
return 0;
}
输入:1 2 3 (记得要输入结束符,windows下Ctrl+z)
打印:1 2 3 0 0