相关疑难解决方法(0)

如何创建Min stl priority_queue?

默认的stl优先级队列是Max 1(Top函数返回最大的元素).

为简单起见,它说它是int值的优先级队列.

c++ stl priority-queue

101
推荐指数
6
解决办法
12万
查看次数

优先级顺序相反

这个网站建议如果我想反向排序我的优先级队列,我应该使用以下代码:

#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;
}
Run Code Online (Sandbox Code Playgroud)

这困扰我:

  • 我必须在构造函数中指定存储类.
  • 我创建了一个类,其唯一目的是传递给优先级队列.

是否有更优雅或更简洁的方式对优先级队列进行反向排序?

c++ std priority-queue

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×2

priority-queue ×2

std ×1

stl ×1