c++ - less 或 less_equal 使用 set

标签 c++ stl set

我们可以传递一个函数作为 < (less) 运算符到 STL 数据结构,例如 set , multiset , map , priority_queue , ...

如果我们的函数像<=那样有问题吗? (less_equal)?

最佳答案

是的,有问题。

形式上,比较函数必须定义一个严格的弱排序,并且<=不会那样做。

更具体地说,<也用于确定等价性( xy 等价于 !(x < y) && !(y < x) )。这不适用于 <= (使用该运算符会让你的集合相信对象从不是等价的)

关于c++ - less 或 less_equal 使用 set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10371896/

相关文章:

python - 如何编写列表理解来创建集合列表?

c++ - strncat 和 strncpy 帮助 C++

c++ - 为什么只有 std::list::sort()?

c++ - set::vector 初始化用数字引号

c++ - 用于在 C++ 中访问数组的代码混淆

java - 在 Java 中维护一组不同的对象

c++ - 在实践现代 c++17 最佳实践的同时管理线程

c++ - 尝试使用 tensorflow 的 C++ API 时出错

c++ - opencv stereobm,真的是基于SAD代价函数吗

python - 按值对 python 集列表进行排序