【发布时间】:2015-01-12 09:00:14
【问题描述】:
我需要一个优先级队列来存储每个键的值,而不仅仅是键。我认为可行的选项是std::multi_map<K,V>,因为它按键顺序迭代,或者std::priority_queue<std::pair<K,V>>,因为它在V 之前按K 排序。除了个人偏好之外,我有什么理由更喜欢其中一个吗?它们真的是一样的吗,还是我错过了什么?
【问题讨论】:
-
std::priority_queue<T>默认情况下将您的元素存储为std::vector<T>,除非您指定不同。它只是容器的适配器,而不是容器本身。 -
@pkrysiak 对。我的意思是使用默认的矢量支持的
-
然后问题基本上衰减到this one
-
就我个人而言,我会选择界面最好的那个来完成你想做的事情。
-
@pkrysiak
std::priority_queue与预排序向量不同,因为它允许 O(log N) 插入。不过,如果不需要插入,则更可取。
标签: c++ stl priority-queue