重载operator <用于多字段类

Nei*_*eil 1 c++ stl operator-overloading map

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

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

但对于某些(唯一)键,值会在地图中被覆盖.

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

我已经看到定义运算符<用于使用元组的结构,但如果可以的话,我宁愿长手写.

Ker*_* SB 5

改为:

return std::tie(a, b, c) < std::tie(Rhs.a, Rhs.b, Rhs.c);
Run Code Online (Sandbox Code Playgroud)

你需要#include <tuple>.