vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
为了可以使用vector,必须在你的头文件中包含下面的代码:#include
一、vector对象的定义和初始化
几种初始化vector对象的方式
vector<T> v1; | vector保存类型为T的对象。默认构造函数v1为空。 |
vector<T> v2(v1); | v2是v1的一个副本。 |
vector<T> v3(n, i); | v3包含n个值为i的元素。 |
vector<T> v4(n); | v4含有值初始化的元素的n个副本。 |
1. 创建确定个数的元素
若要创建非空的vector对象,必须给出初始化元素的值。当把一个vector对象复制到另一个vector对象时,新复制的vector中每一个元素都初始化为原vector中相应元素的副本。但这两个vector对象必须保存同一种元素类型:
vector ivec1; // ivec1 holds objects of type intvector ivec2(ivec1); // ok: copy elements of ivec1 into ivec2vector svec(ivec1); // error: svec holds strings, not ints |
可以用元素个数和元素值对vector对象进行初始化。构造函数用元素个数来决定vector对象保存元素的个数,元素值指定每个元素的初始值:
vector ivec4(10, -1); // 10 elements, each initialized to -1 vector svec(10, "hi!"); // 10 strings, each initialized to "hi!" |
更有效的方法是先初始化一个空vector对象,然后再动态地增加元素。
2. 值初始化
如果vector保存内置类型(如int类型)的元素,那么标准库将用0值创建元素初始化值: