

Tipos públicos | |
|
typedef GenLinearHashTable < Key, LhashBucket, Cmp > ::Bucket | Bucket |
| El tipo de cubeta que maneja la tabla. | |
|
typedef GenLhashTable< Key, LhashBucket< Key >, Cmp > ::Hash_Fct | Hash_Fct |
| El tipo de función hash. | |
Métodos públicos | |
| const size_t & | busy_slots () const |
| Retorna la cantidad de entradas vacía que tiene la tabla. | |
| const size_t & | capacity () const |
| Retorna el tamaño de la tabla. | |
| void | empty () |
| Vacía toda la tabla. Todas las cubetas son liberadas y el tamaño es ajustado al inicial. | |
| const size_t & | expansions () const |
| Retorna el nivel de expansiones que se han realizado sobre la tabla. | |
| Bucket * | insert (Bucket *bucket) |
| Inserta la cubeta bucket en la tabla hash lineal. | |
| LinearHashTable (Hash_Fct hash_fct, const size_t &len, const float &lower_alpha=Base::default__lower_alpha, const float &upper_alpha=Base::default_upper_alpha, const bool &remove_all_buckets=true) throw (std::exception, std::length_error, std::runtime_error, std::bad_alloc, std::overflow_error) | |
| Instancia una tabla hash lineal con cubetas sin destructores virtuales. | |
| Bucket * | remove (Bucket *bucket) |
| Elimina la cubeta bucket. Atención: no se verifica si la cubeta pertenece a la tabla. | |
| Bucket * | search (const Key &key) |
| Busca la clave key en la tabla hash lineal. Retorna un puntero a la cubeta que contiene key si ésta se encuentra en la tabla; NULL de lo contrario. | |
| void | set_lower_alpha (const float &__lower_alpha) |
| Cambia el umbral inferior de carga en que la tabla comienza a contraerse. Dispara domain_error si el nuevo umbral es superior que el umbral superior (upper_alpha). | |
| void | set_upper_alpha (const float &__upper_alpha) |
| Cambia el umbral superior de carga en que la tabla comienza a expandirse. Dispara domain_error si el nuevo umbral es inferior que el umbral inferior (lower_alpha). | |
| const size_t & | size () const |
| Retorna la cantidad de elementos que tiene la tabla. | |
Atributos públicos estáticos | |
| static const float | default_lower_alpha |
| valor por omisión del umbral inferior de carga. | |
| static const float | default_upper_alpha |
| valor por omisión del umbral superior de carga. | |
, esté delimitado entre dos valores inferior y superior, respectivamente.Internamente, la tabla utiliza un arreglo dinámico del tipo DynArray. Esto conlleva ahorros de memoria por entradas de la tabla que no hayan sido escritas.
| Key | el tipo de clave por el cual se indiza la tabla. | |
| Cmp | clase de comparación entre las claves. |
Definición en la línea 456 del archivo tpl_linHash.H.
| LinearHashTable | ( | Hash_Fct | hash_fct, | |
| const size_t & | len, | |||
| const float & | lower_alpha = Base::default__lower_alpha, |
|||
| const float & | upper_alpha = Base::default_upper_alpha, |
|||
| const bool & | remove_all_buckets = true | |||
| ) | throw (std::exception, std::length_error, std::runtime_error, std::bad_alloc, std::overflow_error) [inline] |
Instancia una tabla hash lineal tamaño __len que cuyas cubetas no utilizan destructores virtuales.
| [in] | hash_fct | función hash. |
| [in] | len | tamaño inicial y mínimo de la tabla. |
| [in] | upper_alpha | umbral superior en que la tabla debe expandirse. |
| [in] | lower_alpha | umbral inferior en que la tabla debe contraerse. |
| length_error | si len es igual a superior que la máxima dimensión permitida para un arreglo dinámico. | |
| domain_error | si upper_alpha es menor o igual a lower_alpha. | |
| bad_alloc | si no hay suficiente memoria | |
| overflow_error | si ocurre un desborde desde DynArray (causado por sus cálculos internos). |
Definición en la línea 491 del archivo tpl_linHash.H.