X-Git-Url: https://git.llucax.com/z.facultad/75.29/susanita.git/blobdiff_plain/3ca0929e3a23301865a192e7cd4e6104724dc4f9..9e8e3ba3417b7d29636391e701ec505ff9aa0080:/src/susanita.h?ds=sidebyside diff --git a/src/susanita.h b/src/susanita.h index b677b82..5bff3fb 100644 --- a/src/susanita.h +++ b/src/susanita.h @@ -2,7 +2,7 @@ #define _SUSANITA_H_ #include "persona.h" -#include +#include "hashtable.h" #include #include @@ -10,9 +10,15 @@ struct Susanita { - /// Tipos + /// Tipo de dato para guardar lista de personas typedef std::deque< Persona* > personas_type; + /// Tipo de dato de la cantidad de personas que puede tener + typedef HashTable::size_type size_type; + + /// Constructor + Susanita(size_type capacidad); + /// Destructor virtual ~Susanita(); @@ -20,7 +26,10 @@ struct Susanita virtual void add_persona(Persona* p); /// Obtiene una persona - virtual Persona* get_persona(const std::string& p) const; + virtual Persona* get_persona(const std::string& p); + + /// Muestra estados + virtual void mostrar_estado(int mostrar_prios = 0) const; /// Empieza a emparejar gente virtual void casamentear() = 0; @@ -31,16 +40,18 @@ struct Susanita /// Lista de mujeres personas_type mujeres; + /// Cantidad de personas que puede tener + size_type capacidad; + + protected: + /// Tipos - typedef std::map< std::string, Persona* > nombres_type; + typedef HashTable nombres_type; /// Mapa de gente, relaciona nombres con objetos nombres_type nombres; - /// Muestra estados - void mostrar_estado() const; - }; #endif // _SUSANITA_H_