我在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/

10-13 00:24