我有一个包含一些成员的结构,并且我有一个实现的 operator== 。在 operator== 的帮助下实现 operator< 是否安全?我想在一个集合中使用这个结构,并且我想检查这个结构是否是唯一的。
struct Data
{
std::string str1;
std::string str2;
std::string str3;
std::string str4;
bool operator==(const Data& rhs)
{
if (str1 == rhs.str1
&& str2 == rhs.str2
&& str3 == rhs.str3
&& str4 == rhs.str4
)
return true;
else
return false;
}
// Is this ok??
bool operator<(const Data& rhs)
{
return !this->operator==(rhs);
}
}
那么当我将这个结构插入到 std::set 时会发生什么?