首頁 > 後端開發 > C++ > 為什麼使用非嚴格弱排序比較函數時 `std::sort` 會崩潰?

為什麼使用非嚴格弱排序比較函數時 `std::sort` 會崩潰?

DDD
發布: 2024-12-18 13:57:11
原創
903 人瀏覽過

Why Does `std::sort` Crash When Using a Non-Strict Weak Ordering Comparison Function?

為什麼 std::sort 使用非操作符會崩潰

比較函數? 在 C 中,std::sort 需要一個遵守

嚴格弱排序

規則的比較函數。此規則可確保當且僅當左操作數小於右操作數時比較函數傳回 true。

考慮提供的程式碼:

自訂比較函數傳回 < ;= other.a 對於相等的情況。這違反了嚴格的弱排序規則,因為它規定當且僅當 a == other.a.

透過將比較更改為 a 總之,std::sort 因非運算子比較函數,因為函數違反了嚴格的弱排序規則,可能導致無限循環。因此,確保您的比較函數遵守此規則以避免意外行為至關重要。

以上是為什麼使用非嚴格弱排序比較函數時 `std::sort` 會崩潰?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板