我想知道为什么以下代码返回带有10作为顶部元素的元素
class mycomparison
{
public:
bool operator() (pair<int, Node*> e1, pair<int, Node*> e2) const {
return e1.first < e2.first;
};
};
priority_queue<pair<int, Node*>, vector<pair<int, Node*>>, mycomparison> queue;
queue.push(make_pair(4, &root));
queue.push(make_pair(10, &root));
auto var = queue.top();
它不应该返回4个元素吗?
答案 0 :(得分:1)
C ++优先级队列是 max -heap; 最大元素位于top
。