我想創建一個優先隊列組成的對int,char,給我一對更大的int,但我的代碼無法正常工作。我究竟做錯了什麼?優先級隊列不能正確比較C++
這是我比較類:
class Compare
{
public:
bool operator() (pair<int, char>a, pair<int, char>b)
{
return a.first > b.first;
}
};
這是我的優先級隊列:
priority_queue<pair<int, char>, vector<pair<int, char>>, Compare> party;
但如果我執行的代碼:
party.push(make_pair(2, 'A'));
party.push(make_pair(3, 'B'));
cout<<party.top().first;
它返回2,而不是3.如何修復我的優先級隊列的實現?
事實上,關於效率的部分是有爭議的。如果函數內聯(應該如此),它根本就沒有關係。在不可想象的情況下,價值傳遞會提供更好的表現,至少在86_64上。 – SergeyA