プライオリティキューを作成しようとしています。プライオリティキューはintのペアで構成されています。私は間違って何をしていますか?プライオリティキューが正しく比較されていないC++
は、これは私のコンパレータクラスです:
class Compare
{
public:
bool operator() (pair<int, char>a, pair<int, char>b)
{
return a.first > b.first;
}
};
そして、これは私のプライオリティキューです:
party.push(make_pair(2, 'A'));
party.push(make_pair(3, 'B'));
cout<<party.top().first;
ではなく、2を返します。
priority_queue<pair<int, char>, vector<pair<int, char>>, Compare> party;
しかし、私は、コードを実行した場合優先度キューの実装を修正するにはどうすればよいですか?
実際、効率についての部分は議論の余地があります。関数がインライン展開されていれば、それは全く問題ではありません。想像もできないようなケースでは、値渡しでは少なくとも86_64ではパフォーマンスが向上します。 – SergeyA