gpt4 book ai didi

c++ - std::multimap 中的键要求

转载 作者:行者123 更新时间:2023-11-30 01:33:03 24 4
gpt4 key购买 nike

我有一个 std::multimap,其中键是自定义类。像这样:

Class X {
public:
std::string s;
int x;
operator <(const X& other) const { return s < other.s; }
};
std::multimap<X, int> mymap;

现在,我想使用 upper_bound 和 lower_bound 迭代具有相同“s”值的所有元素。我是否需要为 X 实现一些其他运算符(例如:==)。还是这样就可以正常工作了?

此外,我应该提供什么作为upper_boundlower_bound 的参数?我假设我应该创建一个具有所需值“s”的虚拟对象?

最佳答案

class X是 multimap 的键,upper_bound() 的参数/lower_bound()需要是那种类型的。如果class X具有从 std::string 的隐式转换(这是 X::s 的类型)然后您可以将其用作 upper_bound() 的参数/lower_bound() .

multimap 的默认比较是 less<>它只是调用 operator <() - 所以这是你在 class X 中唯一需要的运算符(operator)为 multimap 工作。

关于c++ - std::multimap 中的键要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/215684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com