描述
标准库类型vector表示对象的集合,其所有对象类型都相同。要想使用vector,需要包含对应的头文件:
#include
using std::vector;
vector是一个类模板,模板本身不是类和函数,相反可以看作编译器生成类或函数编写的一份说明。编译器根据根据模板创建类或函数的过程称之为实例化(instantiation)。
vector ivec; // 保存int类型的对象
vector picture_vec; // 保存用户自定义类的对象
vector> string_vec; // 保存向量元素为vector的对象
C++11可写成vector
定义和初始化
// 空vector,潜在元素类型为T, 执行默认初始化
vector vec1;
// vec2包含vec1的所有元素的副本
vector vec2(vec1);
vector vec2 = vec1;
// vec3包含n个重复元素,元素值为value
vector vec3(n, value);
// vec4包含n个重复执行了默认初始化的对象
vector vec4(n);
// vec5包含了初始值个数的元素
vector vec5{a, b, c, d...};
vector vec5 = {a, b, c, d...};
值初始化举例:
vector vec1(10); // vec1有10个元素,每个值都为0
vector vec2{10}; // vec2有一个元素,值为10
vector vec3(10, 1); // vec3有10个元素,每个值都为1
vector vec4{10, 1}; // vec4有两个元素,分别为10、1
向vector对象添加元素
尾部添加push_back函数:
vector num_vec;
for (int i = 0; i < 10; i++)
{
num_vec.push_back(i);
}
vector内对象的索引
与string对象一样,vector对象的下标也是从0开始,类型为size_type。不能用下标形式添加元素。
迭代器使用方法有单独总结,点击查看。
vector的其他操作
函数 | 描述 |
---|---|
v.empty() | v中没有任何元素返回true,否则返回false |
v.size() | 返回v中元素个数 |
v.push_back() | 尾部添加元素 |
v[n] | 返回v中第n个位置元素的引用(从0开始) |
v1 == v2 | v1和v2相等当且仅当它们的元素数量相同且对应位置的元素值都相同 |