operator <vergleicht mehrere Felder
Ich habe den folgenden Operator <, der zuerst nach einem Wert und dann nach einem anderen Wert sortieren soll:
inline bool operator < (const obj& a, const obj& b)
{
if(a.field1< b.field1)
return true;
else
return a.field2 < b.field2;
}
Ich habe das Gefühl, dass dies falsch ist und dass Sie dies nicht ohne einen weiteren dritten Vergleichstest für die Mitgliedsvariablen tun können, aber ich kann kein Beispiel finden, bei dem dies nicht funktioniert. Wäre das wirklich so, wie erwartet? Vielen Dank
edit: ich hätte es codiert als:
inline bool operator < (const obj& a, const obj& b)
{
if(a.field1< b.field1)
return true;
else if(a.field1> b.field1)
return false;
else
return a.field2 < b.field2;
}
gibt es da unterschiede Ich frage, weil ich weiß, dass meine aus Erfahrung richtig ist, aber auch länger als die erste