促进 C++库

……其中一个世界。 赫伯·萨特安德烈亚历山德雷斯库,C类++编码标准

这是旧版本Boost的文档。单击此处查看此页面的最新版本。
上一个向上主页下一步

第五章助推。阵列

尼古拉 约瑟提斯

根据Boost软件许可证1.0版进行分发。(见随附文件许可证_1_0.txt或复制于http://www.boost.org/LICENSE_1_0.txt)

目录

介绍
参考
标题<boost/array.hpp>
设计原理
有关详细信息。。。
致谢

介绍

作为C语言的一部分的C++标准模板库STL++标准库提供了一个框架,用于处理不同类型的容器。然而,普通数组没有提供STL容器的接口(尽管它们提供STL容器的迭代器接口)。

作为普通阵列的替代品,STL提供了类标准::矢量然而,标准::矢量<>提供动态数组的语义。因此,它可以管理数据更改元素数。这会导致一些开销只需要静态大小的case数组。

在他的书中,泛型编程和STL公司,Matthew H.Austern介绍了一种有用的包装具有静态大小的普通数组的类,称为。它比普通数组。C++编程语言第3版,Bjarne Stroustrup介绍了类似类,称为数组(_A),其中我(尼古拉·约瑟提斯)存在在我的书中稍作修改C++标准库-教程和参考,已调用卡雷这就是这些方法的本质加入了来自促进.

考虑了不同的名称后,我们决定将其命名为简单地分类阵列.

请注意,建议将此类作为下一个类的一部分技术报告,它将扩展C++标准(参见http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1548.htm).

更新:std::数组是(从C++11开始)C++标准的一部分。两者之间的差异boost::数组std::数组是最小的。如果您使用的是C++11,您应该考虑使用std::数组而不是boost::数组.

等级阵列最能实现但并非“可逆容器”的所有要求(参见C第23.1节[lib.container.requirements]++标准)。数组不是可逆STL容器的原因是因为:

  • 没有提供构造函数。
  • 元素可能具有未确定的初始值(请参见“设计原理”一节).
  • 互换()没有恒定的复杂性。
  • 大小()始终是常量,基于类型的第二个模板参数。
  • 容器不提供分配器支持。

它不满足“序列”的要求(参见C++标准的第23.1.1节[lib.sequence.reqmts]),除了:


上一个向上主页下一步