sort函数自定义比较
/ / 点击 / 阅读耗时 2 分钟发生了啥?
在做leetcode 每日一题最大数的过程中,自定义了一个如下的比较函数用于sort
排序:
1 | bool cmp(const int a, const int b){ |
然后愉快地报错了(可以尝试输入多个0,不过该问题在只有比较少0的时候不会出现)。
解决办法是将上面比较函数中的大于等于改为大于。
为什么?
遇事不决,先问StackOverflow
,果不其然,遇到了一个有相似问题的大哥,得到了如下的解答:
啊,原来这么简单!
点进compare requirement,可以看到cpp对于custome cmp的要求:
简单说来,就是满足自反性、反对称性以及传递性。
总结
一个小小的细节,可能平时不太会犯这样的错误,不过还是十分值得注意的!
感谢阅读!欢迎评论嗷~