【发布时间】:2017-05-19 10:15:12
【问题描述】:
我正在尝试使用存储每个元素的向量来构建优先级队列。首先,我想将元素插入到具有优先级的向量中。我不确定是否有可能,如果没有,有人可以给我另一种解决方案。 这是我的代码:
template <typename E>
class PriorityQueue {
private:
std::vector<E> elements;
E value;
int pr;
public:
PriorityQueue() {}
void insert(int priority, E element) {
}
};
【问题讨论】:
-
使用 std::priority_queue
-
没有魔法。根据要插入的优先级搜索位置,然后插入。
-
@PriyeshKumar 这具有线性复杂性,可以对数(摊销)完成。
-
我建议也看看 std::push_heap 和 std::pop_heap