priority_queue,自定义比较器返回错误的堆栈顶部

时间:2015-06-24 19:20:03

标签: c++

我想知道为什么以下代码返回带有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个元素吗?

1 个答案:

答案 0 :(得分:1)

C ++优先级队列是 max -heap; 最大元素位于top