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

Antworten auf die Frage(5)

Ihre Antwort auf die Frage