sort函数
sort(起始地址,终止地址,cmp)
cmp可加可不加。(默认从小到大)
bool cmp(a,b)
{
return a>b;//从大到小排序
}
重点:priority_queue
用法:
默认的数据类型:
priority_queue<类型,vector<类型>,less<类型> >;//从大到小排序
priority_queue<类型,vector<类型>,greater<类型> >;//从大到小排序
自定义的结构体:
需要写一个cmp函数
写法如下:
struct cmp//可以写多重比较原则(按num从大到小排序,num相同按sum从小到大排序)
{
bool operator ()(stu a,stu b)
{
if(a.num==b.num)
return a.sum>b.sum; //注意这里是反着的,优先队列里从小到大排序
else return a.num<b.num;//从大到小排序
}
}
用法:priority_queue<类型,vector<类型>,cmp >
一个比较原则的话可以重置 < 运算符
struct fruit
{
int num;
fruit(int _num=0)//要初始化不然没办法开数组
{
num=_num;
}
friend bool operator <(fruit a,fruit b)
{
return a.num>b.num;//按num从小到大排序
}
};
priority_queue<fruit> m;