我需要一个始终包含n迄今为止插入的最大项目的数据结构(没有特定的顺序).
所以,如果n是3,我们可以进行以下会话,其中插入一些数字并且容器的内容发生变化:
[] // now insert 1
[1] // now insert 0
[1,0] // now insert 4
[1,0,4] // now insert 3
[1,4,3] // now insert 0
[1,4,3] // now insert 3
[4,3,3]
Run Code Online (Sandbox Code Playgroud)
你明白了.数据结构的名称是什么?实现这个的最佳方法是什么?或者这是在一些图书馆?
我想使用一个容器,它有一个priority_queuefor元素(委托),它使用反向比较,因此pop将删除最小的元素.因此该insert函数首先检查要插入的新元素是否大于最小元素.如果是这样,我们抛出最小的并推动新元素.
(我有一个C++实现,但问题是与语言无关.)