Ich habe eine Struktur mit einigen Elementen und ich habe einen Operator== für sie implementiert. Ist es sicher, den Operator< mit Hilfe von operator== zu implementieren? Ich möchte diese Struktur in einer Menge verwenden und überprüfen, ob diese Struktur eindeutig ist.
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);
}
}
Wenn ich also diese Struktur in ein std::set einfüge, was passiert dann?