结构体内重载比较函数
【三种形式都要了解,熟练掌握第三种】
<返回类型说明符> operator <运算符符号>(<参数表>) {<函数体> }
一、第一种形式:
#include<cstdio>
#include<iostream>
using namespace std;
#include<queue>
struct node{
int num;
friend bool operator < (node a,node b){
return a.num>b.num;
}
};
二、第二种形式:
#include<cstdio>
#include<iostream>
using namespace std;
#include<queue>
struct node{
int num;
bool operator < (const node& b) const{
return num>b.num;
}
};
三、第三种形式:
#include<cstdio>
#include<iostream>
using namespace std;
#include<queue>
struct node{
int num;
};
bool operator < (const node& a,const node & b){
return a.num>b.num;
}
优先队列:
priority_queue<node> Q;
说明:这是小根堆。如果把上面的return中的>改成<,就成了大根堆。