【发布时间】:2014-02-15 22:11:30
【问题描述】:
我以前从未使用过 STL C++ 优先级队列,我发现网站上的详细信息有点混乱。
我想创建一个节点的优先级队列,我定义为:
struct Node {
string data;
int weight;
Node *left, *right;
}
我还根据节点的权重按升序插入队列。但是,我不知道最终的 PQ 中会有多少个节点。
我对使用哪个构造函数来创建 PQ 感到困惑。目前,我有:
std::priority_queue<Node> myQueue;
但是由于我希望队列根据节点的权重进行排序,我应该使用构造函数吗:
priority_queue (const Compare& comp, const Container& ctnr);
这行得通吗?在那种情况下,ctnr 会“节点”吗?
最后,当我想将一个元素推入priority_queue(使用STL priority_queue::push)时,该元素会自动放置在正确的位置吗?
谢谢。
【问题讨论】:
标签: c++ priority-queue