了解std::sort 導致編譯器崩潰
C 標準函式std::sort 在資料排序中扮演至關重要的作用結構。但是,並非所有比較函數都按 std::sort 的預期運行,可能會導致程式崩潰。
考慮以下程式碼片段:
#include <algorithm> struct A { int a; }; bool compare(const A& a, const A& b) { return a.a <= b.a; // Corrected from original code (<) } int main() { A coll[8]; std::sort(&coll[0], &coll[8]); }
問題:
原始程式碼中,比較函數compare使用a.a 嚴格弱排序規則。
解:
根據嚴格弱排序規則,對於任意序列中的元素A、B 和C 必須滿足以下條件:
以上是為什麼我的 `std::sort` 崩潰了? (以及如何修復它)的詳細內容。更多資訊請關注PHP中文網其他相關文章!