版权所有 © 2009-2026 Ion Gaztanaga
根据 Boost 软件许可证版本 1.0 发布。(参见随附文件 LICENSE_1_0.txt 或在 https://boost.ac.cn/LICENSE_1_0.txt 复制)
Boost.Container 库实现了多种知名容器,包括 STL 容器。该库的目标是提供标准容器中不存在的高级特性,或者为不符合最新 C++ 标准的编译器提供最新的标准草案特性。
简而言之,Boost.Container 提供了什么?
[stable/static/small]_vector, flat_[multi]set/map, devector 或 segtor。flat_map, flat_set, flat_multimap 和 flat_multiset:标准关联容器的直接替代品,但更节省内存且搜索速度更快。stable_vector:一种 std::list 和 std::vector 的混合容器:具有像 vector 一样的随机访问迭代器,以及像 list 一样在插入和删除时的迭代器稳定性。static_vector:一种向量类容器,在内部嵌入(静态分配)所有所需内存,直到最大容量。最大容量不可增加,且在编译时指定。small_vector:一种向量类容器,在内部嵌入(静态分配)最少量的内存,但在需要增加容量时动态分配元素。该最小容量在编译时指定。devector:标准 vector 和 deque 容器的混合体。它提供前端和后端的高效(摊销常数时间)插入。segtor:一种序列容器,具有像 deque 一样的分段(基于块)存储,但只能在后端增长;支持常数时间的 push_back/pop_back 和随机访问。slist:经典的预标准单向链表实现,提供常数时间的 size()。请注意,C++11 的 forward_list 没有 size()。无需编译 Boost.Container,因为它是一个仅头文件的库,只需将 Boost 头文件目录包含在编译器的包含路径中即可,除非您使用了以下内容:
这些例外情况被实现为单独编译的库,因此在这些情况下,您必须将二进制文件安装在链接器可以找到的位置。如果您遵循了 Boost 入门指南 的说明,那么这就已经为您完成了。