9

我需要一个关于n 个项目的队列,其中插入 ( n +1)项目会删除第 0项目,并且只能在“背面”进行插入。
boost 或标准库中是否已经存在这样的结构?

4

1 回答 1

12

您可以使用由 aboost::circular_buffer包裹的 a 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
于 2012-06-15T15:00:23.370 回答