priority_queue<pair<int, int>, vector<pair<int, int>>, decltype(&cmp)> q(cmp);
cmp是如下自定义的一个函数,是为了按照pair中的第二关键字降序排列
static bool cmp(pair<int, int>& m, pair<int, int>& n) {
return m.second > n.second;
}
还有为什么q后面还要加上一个(cmp)
我在网上搜索的创建优先队列都是下面这样子,但没说第三个参数是自定义函数的时候该怎么写
//升序队列
priority_queue <int,vector<int>,greater<int> > q;
//降序队列
priority_queue <int,vector<int>,less<int> >q;