【数据结构】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:
·
例题: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降序排列

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)