我正在尝试创建一个由 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。如何修复优先级队列的实现?