和任何一种类类型一样,vector模板控制着定义和初始化向量的方法。下面列出了定义vector对象的常用方法。
**默认初始化**vector对象从而创建一个指定类型的空vector:
vector<string> svec; //默认初始化,svec不含任何元素
看起来空vector好像没什么用,但是很快我们就会知道程序在运行时可以很高效地往vector对象中添加元素。事实上,最常见的方式就是先定义一个空vector,然后当运行时获取到元素的值后再逐一添加。
当然也可以在定义vector对象时指定元素的初始值。例如,允许把一个vector对象的元素拷贝给另外一个vector对象。此时,新vector对象的元素就是原vector对象对应元素的副本。注意两个vector对象的类型必须相同:
vector<int> ivec; // 初始状态为空
// 在此处给ivec添加一些值
vector<int> ivec2(ivec); // 把ivec的元素拷贝给 ivec2
vector<int> ivec3 = ivec; // 把ivec的元素拷贝给 ivec3
vector<string> svec(ivec2); // 错误:svec的元素是string对象,不是int
列表初始化vector对象
C++11新标准还提供了另外一种为vector对象的元素赋初值的方法,即列表初始化。此时,用花括号括起来的0个或多个初始元素值被赋给vector对象: