std::sort排序导致内存错误
实例代码如下
struct Hero { |
看起来似乎没什么问题,但是运行起来会core dump,原因如下
参照CPP Reference
一个sort函数需要满足以下性质
- 反自反性: 也即compare(x, x)必须是false
- 非对称性: 也即如果compare(x, y)和compare(y, x)的结果必然相反
- 可传递性: 也即如果compare(x, y)为true,compare(y, z)为true,那么compare(x, z)必然为true
上文代码不符合第一条,因而会把内存写坏
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LykorisR的博客!
评论








