数组是容器吗?
Arrays在连续的内存位置保存一组相同类型的元素,那么它们是否不符合容器的条件?
答案 0 :(得分:2)
在标准中;与数组相关的语言功能(即C-style int a[]
而不是library std::array<>
)与库部分[container.requirements.general]/1中定义的容器分开;
容器是存储其他对象的对象。它们通过构造函数,析构函数,插入和擦除操作来控制这些对象的分配和释放。
每个容器类型(或容器概念)的更严格的要求将在后面的部分中介绍。
因此,语言数组可能不会被严格地视为&#34;容器&#34;,在非正式的意义上,它可能是。
它们确实具有某种程度的共同功能,并且具有一定的可互换性,例如能够使用std::begin()
和std::end()
等。粗略的例子是std::vector<>
,它通常是被称为容器,用作安全&#34;阵列;在以前使用过内置数组的地方使用。