Ho una classe con un paio di campi numerici, quali:operatore Implementazione <in C++
class Class1 {
int a;
int b;
int c;
public:
// constructor and so on...
bool operator<(const Class1& other) const;
};
ho bisogno di usare oggetti di questa classe come una chiave in una std::map
. Pertanto attuo operator<
. Qual è l'implementazione più semplice di operator<
da utilizzare qui?
EDIT: Il significato di <
può essere assunto in modo da garantire l'unicità fintanto che uno qualsiasi dei campi non sono uguali.
EDIT 2:
A semplicistica implementazione:
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;
}
Tutta la ragione di questo post è solo che ho trovato quanto sopra implementazione troppo prolisso. Dovrebbe esserci qualcosa di più semplice.
È necessario innanzitutto decidere quali '<' significa per il caso in cui più membri rappresentano l'invariante della classe. –