- 顺序容器的初始化,使用默认构造函数:元素类型必须有默认构造函数;不适用默认构造函数:元素类型没有默认构造函数,必须指定元素个数,并提供初值(初始化为另一同类型的的已存在容器是同时指定个数和初值的方法)。
- 使用两个迭代器指定容器的第一个元素和最后一个元素:
迭代器为第一个元素,和最后一个元素后的一个元素;
不要求容器类型相同,也不要求元素类型相同(可转换、兼容即可);
可以复制另一个容器的一个子序列;
指针也是迭代器,允许使用内置数组的一对指针(注意不要越过数组范围)。 - 指定元素数目的大小,可使用常量或非常量的表达式。
- 不提供初始化式,将使用值初始化。
- 容器元素类型约束:
(1)支持赋值运算:
(2)元素类型对象支持复制。(IO库类型不支持赋值或复制,所以不能作为元素类型) - 例子:
Foo类型没有 默认构造函数,但有一个int型形参饿构造函数,以下声明:
vector<Foo> empty; //正确:不需要用到默认构造函数
vector<Foo> bad(10); //错误:需要默认构造函数,但是类型Foo没有
vector<Foo> ok(10,1); //正确:元素都初始化为1,不需要用默认构造函数 - 容器的容器,注意尖括号的空格使用:
vector< vector<string> > lines;
两个>之间如果没有空格,会被认为是右移操作符>>,导致编译错误
9.1顺序容器的定义
最新推荐文章于 2024-07-30 13:54:15 发布