sort和priority_queue的比较函数总结

时间:2023-03-09 20:00:19
sort和priority_queue的比较函数总结

对于priority_queue来说,,比较函数为(如果不是结构体,直接int,优先队列默认的是值越大优先级越大):

struct st
{
string str;
int pr, value,mark ;
bool operator < (const st&a)const
{
if(pr !=a.pr) return pr > a.pr;//大于号为最小堆
return mark > a.mark; //(//小于号为最大堆)
}
};
 friend bool operator < (node a, node b)
{
if (a.x == b.x) return a.y > b.y;
return a.x < b.x;
}

而对于sort来说

 #include<iostream>
#include<algorithm>
using namespace std;
int cmp(int a, int b)
{
return a > b;//从大到小排序
}
int main()
{
int a[] = { ,,,,,,, };
sort(a, a + , cmp);
for (int i = ; i < ; i++)
cout << a[i] << " ";
return ;
}

greater<int>()//从大到小

less<int>()//从小到大