力扣347之前k个高频元素
代码随想录解法之小顶堆的表达——优先队列
public://小顶堆
bool operator()(const pair<int, int>& lhs,const pair<int,int>& rhs) {
return lhs.second > rhs.second;
}
此处为仿函数
priority_queue<pair<int, int>, vector<pair<int, int>>, mycomparison> pri_que;
仿函数概念
仿函数是定义了一个含有operator()成员函数的对象,可以视为一个一般的函数,只不过这个函数功能是在一个类中的运算符operator()中实现,是一个函数对象,它将函数作为参数传递的方式来使用。
//operator()运算符仿函数是一种特殊的操作符重载,仿函数不是函数,他是类仿函数,重载了()运算符,可以像函数那样进行调用
优先队列priority_queue
优先队列priority_queue,本质上是用堆实现,可实现“堆优化的Dijkstra算法”
基本语法
·升序队列,小根堆:priority_queue <int,vector,greater > p;
·降序队列,大根堆:priority_queue <int,vector,less >q;
参考文章