【数据结构】set重载 < 运算符

例题:https://blog.csdn.net/Elephant_King/article/details/121750332

当需要用到set结构体时,需要重载set的 < 运算符,具体方法为

struct Node{
	int val;
	int cnt;
	bool operator < (const Node b) const {
		return b.cnt==cnt?val<b.val:cnt>b.cnt;
	}
};

这里拿他和重载cmp函数来作为对比

bool cmp(Node a,Node b){
	return a.cnt==b.cnt?a.val<b.val:a.cnt>b.cnt;
} 

首先除了函数名称等不同,我们首先发现不同的是形参数量,重载运算符函数的形参数量为一个,重载cmp函数的形参为两个,这是因为重载运算符默认有一个形参为本身

运用是并不用对象来调用变量,本身相当于Node a,而需要对象调用的形参则相当于Node b。

重载的意义是让set中新加入的元素先按cnt由大到小排序,当出现cnt相同的时候按val降序排列

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值