我正在寻找一种执行快速排序插入的数据结构,并基于FIFO进行操作。
我想要实现的是一个固定大小的数据结构来保存一系列值。在迭代的每个新步骤中,我希望能够有效地找到最小值或最大值(因此我希望数据结构始终被排序),并且在请求插入新元素时,最旧的元素将自动生成(或至少能够有效地)弹出/丢弃。
所以我想我正在寻找某种FIFO优先级队列。
任何帮助都非常感激。
答案 0 :(得分:5)
为什么不同时将std :: set或multiset和常规FIFO队列(如std :: queue of queue)放入该集合中?在每次插入时,检查队列是否大于最大大小,然后从队列和集合中删除前面的元素。