9.2.4 容器定义和初始化
将一个容器创建为另一个容器的拷贝的两种方法
将一个容器创建为另一个容器的拷贝有两种方法:
(1)直接拷贝整个容器,要求两个容器的类型及其元素类型必须完全相同,array还要求大小一样,因为array的大小是其数据类型的一部分。
(2)拷贝由一个迭代器对指定的元素范围,容器类型和元素类型都可以不同,只要能将要拷贝的元素转换为要初始化的容器的元素类型就可以了。特别注意的是,array不支持此操作。
例如:
与顺序容器大小相关的构造函数
顺序容器(除了array外)的构造函数接受大小参数和一个(可选的)元素初始值(string只接受大小参数),而关联容器不支持此操作。
标准库array的特殊性
大小是数据类型的一部分。默认构造的array是非空的。可以执行拷贝和赋值,但容器类型(array)、元素类型和元素个数必须完全相同。不支持迭代器对指定范围的拷贝操作。构造函数不接受容器大小作为参数。