有限大小的队列

时间:2012-06-15 14:52:12

标签: c++ boost queue std

我需要 n 项目的队列,其中插入( n +1) th 项目删除0 th 项目和插入只能在“背面”进行。
在boost或标准库中是否已有任何此类结构?

1 个答案:

答案 0 :(得分:11)

您可以使用boost::circular_buffer包裹的std::queue,如下所示:

#include <queue>
#include <boost/circular_buffer.hpp>

typedef std::queue<my_type, boost::circular_buffer<my_type>> my_queue;
const int n = 3;
...
my_queue q(boost::circular_buffer<my_type>(n));
q.push(1);
q.push(2);
q.push(3);
q.push(4); // queue now contains 2,3,4