Bueno, antes que nada saludaros a todos porque este es mi primer mensaje, y espero que en el futuro pueda seguir por aqui totalmente identificado con el resto de usuarios y personas que navegan por este foro.
Hace como un mes aproximadamente que empecé a trabajar con C++, y estoy teniendo algún tipo de dificultades, aunque la principal es la que os voy a plantear a continuación.
Esto intentando implementar un conjunto de elementos mediante un SET porque quiero hacer posteriores búsquedas logarítmicas sobre él. Los elementos que incluyo en dicho conjunto son de tipo "nodo" que es una clase que yo he creado. Mi problema, es que no entiendo muy bien como se hace internamente la búsqueda, y ahora mismo lo que tengo hecho es una sobrecarga de los operadores == y <, pero el resultado que me devuelve no coincide con el valor buscado, y no sé sobre donde debo trabajar.
Mi clase "nodo" tiene un aspecto como este:
#include <vector>
#include <string>
using namespace std;
class nodo{
private:
int max;
short nivel1;
vector<char> niveles;
string expresion;
public:
nodo(int cod, short pnivel1, vector<char> pniveles);
nodo(int cod, short pnivel1, vector<char> pniveles, string pexpresion);
short getNivel1();
vector<char> getNiveles();
string getExpresion();
int getMax();
nodo& operator= (nodo&);
friend bool operator== (const nodo&, const nodo&);
friend bool operator< (const nodo&, const nodo&);
};
Y de alguna manera lo que establece las relaciones de comparación, sería por un lado comparar el valor de "nivel1" y por otro cada uno de los valores del vector de caracteres "niveles".
Si alguno de vostros sabría como ayudarme le estaría muy agradecido, porque la verdad es que me estoy volviendo "loco" con ello
.
Gracias de antemano por todo, y espero que a partir de ahora yo también pueda echaros una mano de vez en cuando.