优先级队列实现 - C ++中的逻辑错误?

时间:2015-09-22 03:05:35

标签: c++ priority-queue

我试图在名为AdjList的结构中比较hsld(整数)。 这是在输入指向优先级队列的指针时用于比较的函数。

struct CompareHSLD
{
    bool operator()(AdjList* const p1, AdjList* const p2)
    {
        return p1->hsld < p2->hsld;
    }
};

这是优先级队列声明。

priority_queue<AdjList*, vector<AdjList*>, CompareHSLD> PriQueueAdj;

无法弄清楚此实现中的错误。没有语法错误,但优先级队列似乎没有排序。它会弹出错误的元素。

如果我想首先弹出最低值的元素,它应该是p1->hsld > p2.hsld吗?

0 个答案:

没有答案