版权所有 © 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 的序列。它支持随机访问迭代器,在缓冲区开头或结尾进行常数时间的插入和删除操作,以及与 std 算法的互操作性。
circular_buffer
专门设计用于提供 固定容量 存储。当其容量耗尽时,新插入的元素将导致元素被覆盖,无论是在缓冲区的开头还是结尾(取决于使用的插入操作)。
circular_buffer
仅在创建时、显式调整容量时或在需要容纳调整大小或赋值操作时分配内存。
还有一个 circular_buffer_space_optimized
版本可用。
circular_buffer_space_optimized
是 circular_buffer
的一个改版,它 在创建时不会一次性分配所有内存,而是根据需要分配内存。
预测性内存分配类似于典型的 std::vector
实现。当容器大小减小时,内存会自动释放。
空间优化循环缓冲区的内存分配过程。容量控制器的 min_capacity
代表保证分配的最小内存量。分配的内存永远不会低于此值。min_capacity
的默认值设置为 0。可以使用构造函数参数 () capacity_control
或函数 set_capacity
设置 min_capacity
。
当然,空间优化版本会稍微慢一些。