当前位置:   article > 正文

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

set重载运算符

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

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

  1. struct Node{
  2. int val;
  3. int cnt;
  4. bool operator < (const Node b) const {
  5. return b.cnt==cnt?val<b.val:cnt>b.cnt;
  6. }
  7. };

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

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/382974
推荐阅读
相关标签
  

闽ICP备14008679号