此网站建议,如果我想要将我的优先队列倒序排序,应使用以下代码:
#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;
}
我感到困扰:
- 我必须在构造函数中指定存储类。
- 我创建了一个仅用于传递给优先级队列的类。
priority_queue<int, vector<int>, mycomparison> first(true)
; - Andy Prowl