c++ - 关于设置容器

标签 c++ stl set containers multiset

std::set<int, std::less_equal<int>> myset = {1,1,7,8,2,2};
myset.insert(99);
myset.insert(99);
for(const int & val : myset)
    std::cout << val << " ";

输出:

1 1 2 2 7 8 99 99 

你好,我在研究容器。我意识到当我使用 less_equal 函数时,标准集容器的行为就像一个多集容器。这是正常的吗?如果是,multiset 和 set 有什么区别?

最佳答案

Is this normal?

不,这不正常。您不能将 std::less_equal 指定为 std::set 的比较器因为它不满足严格的弱排序规则。

查看要求here .

关于c++ - 关于设置容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41760306/

相关文章:

c++ - 不能将 if 语句放入循环 C++

c++ - gmock TypedEq 相同的字符串不同的地址

c++ - std::find 和 boost::make_indirect_iterator - 编译错误

Android EditText + 设置一些文字颜色

c# - 我如何将此 Delphi Set 代码转换为 C#?

c++ - 更改命令行 Qt5 源构建的配置的正确/快速方法

C++ 参数包,受限于单一类型的实例?

c++ - 重新排序 vector<std::unique_ptr<X>> 给定 vector<const X*>

c++ - 使用数组时的 set_union 问题

client - 如何使用 cmd 更改 clientspec 的根目录