结构体内嵌比较函数
作者:互联网
比较函数分为两种:
1.普通的比较函数,以全局函数的形式呈现。
2.结构体内嵌比较函数。
相对于普通的比较函数,内嵌式的速度更快,而且如果存在多种结构的比较,内嵌式也显得更清爽。所以,这里主要讲后者。
形式:
(优先队列)
struct node
{
int d,pos;
bool operator <( const node &x ) const {return x.d<d;}
};
(快速排序)
struct node
{
int x,y,z;
bool operator < (const node &x) const {return x.z>z;}
} a[MAXN];
写比较函数时,裸的变量表示当前的值,x.z>z,那么就是从小到大排序,x.d<d就是从大到小排序。
PS:sort默认为从小到大排序,优先队列默认为从大到小。因为优先队列默认大根堆。所以,对于优先队列而言,内嵌式要反着写。
如果涉及多维度的排序,就像写普通比较函数一样,用分支语句即可。
标签:node,排序,内嵌式,队列,结构,比较,体内,函数 来源: https://www.cnblogs.com/cyl-oi-miracle/p/13458763.html