boost循环队列 circular_buffer

用法

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


举例

// 包含必要的头文件
#include 

// 最大3个元素的队列,插入第四个元素后的情况
boost::circular_buffer 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);


你可能感兴趣的:(boost循环队列 circular_buffer)