複数の値を含むマップとセットでキーを使用したい場合があります。速度はあまり気にしません。演算子 < を記述して構造体を複数の値と比較する簡単または一般的な方法はありますか? 私は自分で次のことを考え出しましたが、特に値の数が増えると面倒です。ありがとう。
struct Properties
{
Properties() {}
Properties
( const string& data1
, const string& data2
, const string& data3
)
: data1(data1)
, data2(data2)
, data3(data3)
{}
string data1;
string data2;
string data3;
bool operator < (const Properties& other) const
{
if (this->data1 == other.data1)
{
if (this->data2 == other.data2)
{
if (this->data3 == other.data3)
{
return false;
}
else
{
return this->data3 < other.data3;
}
}
else
{
return this->data2 < other.data2;
}
}
else
{
return this->data1 < other.data1;
}
}
};