std :: sort是否可能导致错误?

时间:2011-10-07 20:38:14

标签: c++ std

我的问题与this有关,因为我解决了问题,我编写了自己的排序算法(简单的插入排序),并且它有效。我对此感到非常惊讶,因为我认为标准库已经过充分测试。是否有任何已知的特殊情况std::sort可能会搞乱?

2 个答案:

答案 0 :(得分:6)

不,std::sort的任何常见C ++标准库实现中都不存在任何已知错误。它经过了严格的测试。

如果您发现崩溃或结果不正确,几乎可以肯定,因为您没有遵守合同:要么传入了无效的参数,要么您的比较器不符合strict weak ordering的要求(反射性,不对称性,传递性和等价传递性。)

答案 1 :(得分:1)

如果您的比较函数/对象不遵循严格的弱排序,或者您正在排序的事物包含不再有效的指针,则其中任何一个都可能导致它破坏。