X-Git-Url: https://git.llucax.com/z.facultad/75.29/susanita.git/blobdiff_plain/a86e26ae42584c979262de7f6ddefa815ac7c625..9544fcaa595b6a6f14b86768429c1883fa39ec6d:/src/susanita.h diff --git a/src/susanita.h b/src/susanita.h index 85bc8ba..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,9 +40,14 @@ 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;