このサイトでは、優先キューを逆順にしたい場合は、次のコードを使用する必要があることを示唆しています。
#include <iostream>
#include <queue>
using namespace std;
class mycomparison{
bool reverse;
public:
mycomparison(const bool &revparam=false) {reverse=revparam;}
bool operator() (const int &lhs, const int &rhs) const {
if (reverse) return (lhs>rhs);
else return (lhs<rhs);
}
};
int main (){
int myints[]= {10,60,50,20};
priority_queue<int, vector<int>, mycomparison(true)> first;
return 0;
}
これは私を悩ませます:
- コンストラクターでストレージクラスを指定する必要があります。
- 優先キューに渡すことだけを目的としたクラスを作成しました。
優先キューを逆ソートする、より洗練された、またはより冗長でない方法はありますか?