【发布时间】:2013-06-06 22:02:02
【问题描述】:
我是 STL 容器(以及一般的 C++)的新手,所以我想向社区寻求帮助。我基本上想要一个支持不断迭代的priority_queue。现在,std::priority_queue 似乎不支持迭代,所以我将不得不使用其他东西,但我不确定具体是什么。
要求:
- 维护插入顺序(如优先队列)
- 从列表顶部弹出
- 获取对列表中每个元素的 const 访问权限(此阶段无需关心队列中的顺序)
一种选择是保留一个priority_queue 并分别有一个unordered_set 的引用,但我宁愿不要有两个容器浮动。我也可以使用deque 并搜索正确的插入位置,但如果可能的话,我宁愿让容器为我管理排序(并且恒定时间插入会比线性时间更好)。有什么建议吗?
【问题讨论】:
-
快速说明——插入优先级队列需要记录时间,而不是恒定的。此外,它没有对队列进行排序。它只是将最少的元素保持在顶部。
-
很高兴知道。我想我对内部实现做了一些(错误的)假设。
标签: c++ stl containers priority-queue