gpt4 book ai didi

c++ - 为多字段类重载 operator<

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:27:28 25 4
gpt4 key购买 nike

我正在尝试插入一个 map ,其中的键是一个类。我在我的类中重载了 operator< 函数,如下所示:

struct MyType
{
int a, b, c;
bool operator<(const MyType& Rhs) const
{
return (a<Rhs.a) || (b<Rhs.b) || (c<Rhs.c);
}
}

但对于某些(唯一的)键,值会在映射中被覆盖。

多值键的首选运算符<方法是什么?

我看过 Defining operator< for a struct它使用元组,但如果可以的话,我宁愿手写。

最佳答案

改为这样做:

return std::tie(a, b, c) < std::tie(Rhs.a, Rhs.b, Rhs.c);

您需要 #include <tuple> .

关于c++ - 为多字段类重载 operator<,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13880393/

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