前言
其实咱们在TopK问题中已经介绍了优先队列这么个东西,还是蛮不错的,这次咱们仔细了解一下c++的priority_queue是如何使用的。
参数
包括仨,其中后两个是默认参数,从左到右依次是:元素类型T,默认容器(这里是vector)、默认比较大小方式(这里默认是less,即大的元素在上面)。
更换插入的比较方法
这就是要修改第三个默认参数了,那么咱们必须得把第二个参数写的明明白白的。
priority_queue<T, vector, greater > 这就非常简单,greater就把优先队列的头部变成最小元素了。
如果咱们对这俩比较函数不满意,那么咱们如何自己写一个比较函数呢?其实就是重载<操作符。写一个:
bool operator<(T a, T b)
{
if(a