c++ - STL 排序不需要严格的弱排序才能工作吗?

标签 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>());

--

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

最佳答案

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

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

关于c++ - STL 排序不需要严格的弱排序才能工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16824667/

相关文章:

c++ - 从 C 中的多个线程访问静态常量变量

c++ - WinApi - 更改窗口样式

c - 错误 : invalid operands to binary == (have 'struct demo' and 'struct demo' )

javascript - 检测多个类中的一个类的 If 语句

c# - 在 Debug模式下搜索其值后的变量,这可能吗?

C++ 在初始化 std::function 时,我们如何将占位符绑定(bind)到引用/引用参数?

C++ 和 STL 进修类(class)

c++ - 我如何使用具有模板转换运算符的非模板代理对象来避免指定我的 boost::variant 的类型?

c++ - 多态性和 STL 容器……不需要指针吗?

c# - 为什么编译器发出框指令来比较引用类型的实例?