Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;按值排序的数据结构&;操作先进先出_C++_Data Structures_Stack_Heap_Priority Queue - Fatal编程技术网

C++ c++;按值排序的数据结构&;操作先进先出

C++ c++;按值排序的数据结构&;操作先进先出,c++,data-structures,stack,heap,priority-queue,C++,Data Structures,Stack,Heap,Priority Queue,我正在寻找一个数据结构,执行快速排序插入和操作的基础上先进先出 我试图实现的是一个固定大小的数据结构,用于保存一系列值。在迭代的每一个新步骤中,我希望能够高效地找到最小值或最大值(因此我希望数据结构始终被排序),并且在请求插入新元素时,自动(或至少能够高效地)弹出/丢弃最旧的元素 所以我想我在寻找某种FIFO优先级队列 非常感谢您的帮助。为什么不在该集合中同时使用std::set或multiset,以及像std::queue这样的常规FIFO队列?在每次插入时,检查队列是否超过最大大小,然后从队

我正在寻找一个数据结构,执行快速排序插入和操作的基础上先进先出

我试图实现的是一个固定大小的数据结构,用于保存一系列值。在迭代的每一个新步骤中,我希望能够高效地找到最小值或最大值(因此我希望数据结构始终被排序),并且在请求插入新元素时,自动(或至少能够高效地)弹出/丢弃最旧的元素

所以我想我在寻找某种FIFO优先级队列


非常感谢您的帮助。

为什么不在该集合中同时使用std::set或multiset,以及像std::queue这样的常规FIFO队列?在每次插入时,检查队列是否超过最大大小,然后从队列和集合中删除前面的元素。

该海报的可能副本是询问“元素不需要以任何方式排序”的数据结构。我需要固定的大小,先进先出,并为它保持排序在任何时候。这是不是不合适:?根据容器的大小,我只需使用一个向量或deque并应用
算法
函数排序,
最小值
最大值
,当您需要时,它仍应足够快,以满足您数百万次的需要,并作为实时过程的一部分,所以我最初的想法是,不断地重新排序并不是最好的方式。如果网络能够保持足够长的时间,让我再试一次:实际的DUP显然不正确地指向了那个。我可以看出,保持从队列或指针堆的头部弹出是多么高效。然而,从一个集合中连续删除操作的效率有多高,其中元素可能位于二元搜索树中的任何位置?根据,给定迭代器的删除是O(1)。好吧,酷…我现在想我可能会使用Boost循环缓冲区来存储指针。在“磨合期”之后,只需在每次迭代中弹出前端元素即可。对于任何来到此线程的人来说……我现在发现,显然,他们正在寻找的是LRU(最近使用最少的)映射,或LRA(最近添加最少的)映射,具体取决于您的需要。