c++ - 有限大小的队列

标签 c++ boost queue std

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

最佳答案

您可以使用 boost::circular_bufferstd::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

关于c++ - 有限大小的队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11053070/

相关文章:

C# 垃圾收集 -> 到 C++ 删除

c++ - 模板中的隐式转换和编译器强制

c++ - boost::asio 和套接字所有权

c++ - "lib"头的库文件名在codeblocks和vs9编译器中无法识别

c++ - MP3 的 DirectShow 媒体子类型?

c++ - native 代码中的托管 dll(通过 com)。它是在 com 服务器进程中还是进程外?

c++ - 根据 boost::filesystem,为什么这个文件不是常规文件?

java - 为什么列表优于队列?

python:如何在线程与队列之间共享一个sqlite连接?

iOS:队列 HTTP 调用