顺序容器几乎可以保存任意类型的元素。特别是,我们可以定义一个容器,其元素的类型是另一个容器。这种容器的定义与任何其他容器类型完全一样:在尖括号中指定元素类型(此种情况下,是另一种容器类型);
//此处lines是一个vector,其元素类型是string的vectoro
vector<vector<string>> lines; //vector的vector
注意:
较旧的编译器可能需要在两个尖括号之间键入空格,例如
vector<vector<string> >
例如,顺序容器构造函数的一个版本接受容器大小参数(参见3.3.1节,第88页),它使用了元素类型的默认构造函数。但某些类没有默认构造函数。我们可以定义一个保存这种类型对象的容器,但我们在构造这种容器时不能只传递给它一个元素数目参数:
//假定noDefault是一个没有默认构造函数的类型
vector<noDefault> v1(10, init); //正确:提供了元素初始化器
vector<noDefault> v2(10); //错误:必须提供一个元素初始化器