tengo una clase con un par de campos numéricos, tales como:operador <en C++
class Class1 {
int a;
int b;
int c;
public:
// constructor and so on...
bool operator<(const Class1& other) const;
};
Tengo que utilizar los objetos de esta clase como una llave en una std::map
. Por lo tanto, implemento operator<
. ¿Cuál es la implementación más simple de operator<
para usar aquí?
EDIT: El significado de <
puede suponer el fin de garantizar la unicidad, siempre y cuando cualquiera de los campos son desiguales.
EDIT 2:
Una aplicación simplista:
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;
}
La razón detrás de este post es sólo que he encontrado la implementación anterior demasiado prolijo. Debería haber algo más simple.
Usted debe decidir primero qué '<' significa para el caso en el que varios miembros representan el invariante de la clase. –