了解 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中文网其他相关文章!