版权所有 © 2003-2013 Jan Gaspar
根据 Boost 软件许可证版本 1.0 发布。(参见随附文件 LICENSE_1_0.txt 或在 https://boost.ac.cn/LICENSE_1_0.txt 复制)
目录
![]() |
注意 |
|---|---|
此手册的打印友好 PDF 版本也可用。 |
循环缓冲区。
术语 循环缓冲区(也称为 环形 或 循环缓冲区)是指用于存储传入数据的内存区域。当缓冲区已满时,新数据会从缓冲区开头写入并覆盖旧数据。
boost::circular_buffer 是一个符合 STL 的容器。
它是一种序列,类似于 std::list 或 std::deque。它支持随机访问迭代器,在缓冲区开头或结尾进行常数时间插入和删除操作,并与标准算法互操作。
circular_buffer 专门设计用于提供 固定容量 存储。当其容量用尽时,新插入的元素将导致元素被覆盖,覆盖发生在缓冲区开头或结尾(具体取决于使用的插入操作)。
circular_buffer 仅在创建时、显式调整容量时,或在需要容纳大小调整或赋值操作时分配内存。
还有一个 circular_buffer_space_optimized 版本可用。
circular_buffer_space_optimized 是 circular_buffer 的一个适配,它 在创建时不会一次性分配所有内存,而是按需分配内存。
预测性内存分配类似于典型的 std::vector 实现。当容器大小减小时,内存会自动释放。
空间优化循环缓冲区的内存分配过程。容量控制器的 min_capacity 表示保证的最小分配内存量。分配的内存绝不会低于此值。 min_capacity 的默认值设置为 0。 min_capacity 可以使用构造函数参数 () capacity_control 或函数 set_capacity 设置。
空间优化版本当然会慢一些。