码迷,mamicode.com
首页 > 其他好文 > 详细

std::sort要求strict weak ordering

时间:2016-01-08 00:11:58      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:

strict weak ordering简单地说就是小于语义,非小于等于语义,也就是说对于相等的或者异常的元素比较应当返回false

后果很严重,在google搜一下violating strict weak ordering make std::sort crash能看到很多种后果,

经测试,当待排序元素大于16个时使用std::sort,若传入的callable违反strict weak ordering,则可能死循环也可能越界访问。

待排序元素小于等于16个不会有问题是因为std::sort对于小集合优化,用了冒泡排序。

std::sort要求strict weak ordering

标签:

原文地址:http://www.cnblogs.com/farseeraliens/p/5111542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!