0
我在sort()函數中使用了lambda函數。在我的lambda函數中,如果兩者相等,則返回true。然後我得到了分割錯誤。C++ comp(a,a)== false
審查C++ Compare後,它說
For all a, comp(a,a) == false
我不明白爲什麼它一定是假的。爲什麼我不能讓comp(a,a)==true
?
(在此先感謝)
我在sort()函數中使用了lambda函數。在我的lambda函數中,如果兩者相等,則返回true。然後我得到了分割錯誤。C++ comp(a,a)== false
審查C++ Compare後,它說
For all a, comp(a,a) == false
我不明白爲什麼它一定是假的。爲什麼我不能讓comp(a,a)==true
?
(在此先感謝)
思考的Comp
作爲某種「比」關係,即它定義了某種訂購一組數據。
現在你可能想要做一些東西,有了這層關係,就像在遞增的順序,在排序的數據的二進制搜索分類數據等
有很多種算法做這樣的東西非常快,但他們通常有要求,他們處理的順序是「合理的」,這是正確的術語Strict weak ordering。它由您給出的鏈接中的規則定義,第一個基本意思是:
「沒有元素應該小於自身」。
這確實是合理的假設,也是我們算法需要的一件事情。
比較告訴你a是否在訂購前放在b之前。一個不能在一個人之前,一個人是錯誤的。 – user4581301
@ user4581301爲什麼不能在a之前不能?如果a在a之前,它仍然被排序。 – 8090PZ
因爲a是a。讓我們聽聽艾因蘭德。 – user4581301