Ich habe eine Klasse mit einigen numerischen Feldern wie:Implementierung Operator <in C++
class Class1 {
int a;
int b;
int c;
public:
// constructor and so on...
bool operator<(const Class1& other) const;
};
Ich brauche Objekte dieser Klasse als Schlüssel in einem std::map
zu verwenden. Ich implementiere daher operator<
. Was ist die einfachste Implementierung von operator<
hier zu verwenden?
EDIT: Die Bedeutung von <
davon ausgegangen werden kann, um die Eindeutigkeit zu gewährleisten, solange eines der Felder ungleich sind.
EDIT 2:
Eine vereinfachte Implementierung:
bool Class1::operator<(const Class1& other) const {
if(a < other.a) return true;
if(a > other.a) return false;
if(b < other.b) return true;
if(b > other.b) return false;
if(c < other.c) return true;
if(c > other.c) return false;
return false;
}
Der ganze Grund für diesen Beitrag ist nur, dass ich die obige Implementierung zu ausführlich gefunden. Es sollte etwas einfacher sein.
Sie müssen zunächst entscheiden, was ‚<‘ bedeutet für den Fall, dass mehrere Mitglieder der Invariante der Klasse darstellen. –