vector
是一个序列容器,长度不定的数可用它来处理,其会自动地分配存储空间。
vector
在头文件 <vector>
中定义,使用它要先加入头文件。
#include <vector>
目录
声明和赋值
声明
声明 vecotr
时要在尖括号 <>
内指定存储数据的类型。下面指定了存储整型数据,也可是浮点型或字符串型等。
vector<int> v1;
下面声明一个存储 vector
类型的 vector
,这相当于二维向量,两个维度都是可变的。
vector<<vector<int> > v2;
定义的时候要记得在> >符号之间加上空格,避免编译器将其视为移位操作。C++11 标准可以不用空格。
要体会上面写法与下面写法的区别,下面这种写法表示有一个 vector
数组,它的大小是 10,这一维度是固定的。而数组中每个 vector
元素大小是不固定的。
vector<int> v3[10];
构造和初始化
在声明时可以通过括号的形式进行初始化。
vector<int> v11(3); // 有 3 个元素,每个元素都是 0
vector<int> v12(3, 123); // 有 3 个元素,每个元素都是 123
vector<vector<int>> v21 (3, vector<int>(4)); // 3 * 4 的二维数组,每个元素都是 0
还可以通过大括号的形式指定每个元素值。
vector<int> v13 {
1, 2, 3}; // 3 个元素,分别为 1、2、3
vector<vector<int> > v22 {
{
1, 3, 2, 4}}; // 2 * 2 个元素,分别为 1、3;2、4
还可用等号进行初始化,相当于下面的赋值。
vector<int> v13 = {
1, 2, 3};
赋值
可以用等号进行赋值,把一个向量赋值给另外一个向量。
vector<int> v13 = {
1, 2, 3};
vector<int> v14 = v13;
assign()
可以给元素赋值,第 1 个参数表示元素个数,第 2 个参数表示值。它也可以传入一个列表参数。如果向量 v12
已经存在,它会重新设置里面的内容。
v11.assign(3, 222);
v12