小编Jih*_*Yin的帖子

优先级队列无法正确比较 C++

我正在尝试创建一个由 int, char 对组成的优先级队列,它为我提供了具有更大 int 的对,但我的代码无法正常工作。我究竟做错了什么?

这是我的比较器类:

class Compare
{
public:
    bool operator() (pair<int, char>a, pair<int, char>b)
    {
        return a.first > b.first;
    }
};
Run Code Online (Sandbox Code Playgroud)

这是我的优先级队列:

priority_queue<pair<int, char>, vector<pair<int, char>>, Compare> party;
Run Code Online (Sandbox Code Playgroud)

但是如果我执行代码:

party.push(make_pair(2, 'A'));
party.push(make_pair(3, 'B'));
cout<<party.top().first;
Run Code Online (Sandbox Code Playgroud)

它返回 2,而不是 3。如何修复优先级队列的实现?

c++ priority-queue

2
推荐指数
1
解决办法
1858
查看次数

标签 统计

c++ ×1

priority-queue ×1