社区讨论

结构体运算符重载

学术版参与者 5已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@mhj0gzby
此快照首次捕获于
2025/11/03 18:42
4 个月前
此快照最后确认于
2025/11/03 18:42
4 个月前
查看原帖
rt,我写了优先队列里面放结构体,但是用友元函数不对,换成下面那种就对了,请问为啥
CPP
struct M{
	ll a,b;
	int id,ty;
	friend bool operator<(M x,M y){
		if(x.a>=x.b&&y.a<y.b)return 1;
		if(x.a<x.b&&y.a>=y.b)return 0;
		if(x.a<x.b&&y.a<y.b)return x.a>y.a;
		if(x.a>=x.b&&y.a>=y.b)return x.b<y.b;
//		return 0;
	}

}mon[N];
priority_queue<M> q;

CPP
struct node{
    int u,num;
    ll a,b;

    bool operator< (const node &x) const { 
        if(a>=b&&x.a< x.b) return true;
        if(a< b&&x.a>=x.b) return false;
        if(a< b&&x.a< x.b) return a>x.a;
        if(a>=b&&x.a>=x.b) return b<x.b;
    }

}a[maxn];

priority_queue<node> q;
来源的话: Problem H. Monster Hunter HDU - 6326

回复

8 条回复,欢迎继续交流。

正在加载回复...