#define _SUSANITA_H_
#include "persona.h"
-#include <map>
+#include "hashtable.h"
#include <deque>
#include <string>
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();
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;
/// 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;