我有时想在 map 和 set 中使用包含多个值的键。我不太在意速度。是否有一种简单或通用的方法来编写 operator < 来比较具有多个值的结构?我自己想出了以下内容,但这很乏味,尤其是随着值数量的增加。谢谢。
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;
}
}
};