我在sort()函数中使用了lambda函数。如果两个相等,则在我的lambda函数中返回true。然后我得到了细分错误。
查看C++ Compare后,它说
For all a, comp(a,a) == false
我不明白为什么它一定是错误的。为什么我不能让
comp(a,a)==true
?(提前致谢)
最佳答案
将Comp
视为某种“小于”关系,也就是说,它定义了一组数据的某种排序。
现在,您可能需要处理这种关系,例如按升序对数据进行排序,对已排序数据进行二进制搜索等。
有许多算法可以非常快速地执行此类操作,但是通常要求它们处理的顺序是“合理的”,这用术语Strict weak ordering进行了形式化。它由您给出的链接中的规则定义,第一个基本上表示:
“任何元素都不得小于自身。”
假设这确实是合理的,这是我们算法所需要的事情之一。
关于c++ - C++ comp(a,a)==否,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37199391/