X-Git-Url: https://git.llucax.com/z.facultad/75.29/susanita.git/blobdiff_plain/bb0a561706306ff43a10b7ebd6bf9802876b63cf..3cf8caf3c30d7790d1467466ecd556b399cbb301:/src/susanita.h?ds=inline diff --git a/src/susanita.h b/src/susanita.h index 23d5526..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,10 +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() const; + virtual void mostrar_estado(int mostrar_prios = 0) const; /// Empieza a emparejar gente virtual void casamentear() = 0; @@ -34,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;