不要求排序需要严格的弱排序吗?

时间:2013-05-29 22:04:11

标签: c++ stl equality equivalence strict-weak-ordering

来自http://stdcxx.apache.org/doc/stdlibref/less-equal.html

-

您可以将less_equal对象传递给任何需要二进制函数的算法。例如,sort()算法可以接受二进制函数作为备用比较对象来对序列进行排序。 less_equal将以下列方式用于该算法:

vector<int> vec1;
sort(vec1.begin(), vec1.end(),less_equal<int>());

-

现在我很困惑,上面的文档是否正确?

1 个答案:

答案 0 :(得分:7)

你是对的,std::sort要求比较器定义严格的弱排序。

这意味着std::less_equal不应与std::sort一起使用。它仍然可以与许多其他标准算法一起使用,它采用二进制函数,并且没有严格的弱排序要求。