boost循环队列 circular_buffer

用法

  • 适合用于固定空间位置及大小的情况

  • 构造函数必须传入初始队列大小
  • 支持下标引用,0表示队头位置,而不是队列空间的起始位置,中间某个下标会自动跨过队列空间的结束位置
  • 支持begin、end等常用stl iterator用法
  • 删除队头附近的元素使用rerase(iterator, iterator),会将队头到iterator之间(如果有)的值往后移
  • circular_buffer::array_one、circular_buffer::array_two这两个方法可以获得从队头到队尾两个连续的内存块


举例

// 包含必要的头文件
#include <boost/circular_buffer.hpp>

// 最大3个元素的队列,插入第四个元素后的情况
boost::circular_buffer<int> b(3);
b.push_back(1);
b.push_back(2);
b.push_back(3);
b.push_back(4);
assert(b[0]==2);
assert(*b.array_one().first==2);
assert(b.array_one().second==2);
assert(*b.array_two().first==4);
assert(b.array_two().second==1);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值