1. 背景介绍
Java中常见的集合有List、Set、Map等,并且这些都是支持泛型的。类似的C++中也提供了vector容器,并且vector是模板类(类似Java的泛型)。使用vector要用到的头文件:
#include <vector>
using std::vector;
C++中模板本身不是类,是编译器生成类或者函数的说明,要使用模板需要编译器根据模板来创建类的实例化过程,我们代码中使用的是类,所以在使用模板是,要指定编译器将模板实例化成那种类型。
跟Java类似,在模板后面用尖括号括起来的部分表示泛型要关联类型:vector<int>
,vector<string>
,vector<vector<int>>
。
**注意:**vector可以容纳大部分类型的对象作为元素,但是引用不是对象,不存在包含引用的vector。
早起版本C++标准中,如果vector元素还是vector的话,定义形式与C++11标准有些区别:
- 旧版本中必须在外层vector对象的右尖括号和其他元素类型之间添加一个空格:
vector<vector<int> >
。
2. vector初始化
常用的初始化方法:
//默认初始化,为空集合
vector<int> v1;
//拷贝初始化
vector<