#include <tpl_linHash.H>
Tipos públicos | |
typedef GenLinearHashTable < Key, LinHashBucketVtl, Cmp > | Base |
Tipos públicos heredados desde Aleph::GenLinearHashTable< Key, LinHashBucketVtl, Cmp > | |
typedef size_t(* | Hash_Fct )(const Key &) |
typedef LinHashBucketVtl< Key > | Bucket |
El tipo de cubeta. | |
typedef Key | Key_Type |
typedef Key | Item_Type |
Otros miembros heredados | |
Métodos públicos heredados desde Aleph::GenLinearHashTable< Key, LinHashBucketVtl, Cmp > | |
void | set_hash_fct (Hash_Fct fct) |
Set the internal hash function. | |
Hash_Fct | get_hash_fct () const |
const Cmp & | get_compare () const |
float | current_alpha () const |
return the current table load | |
GenLinearHashTable (Hash_Fct __hash_fct=Aleph::dft_hash_fct< Key >, const size_t &__len=Primes::DefaultPrime, const float &__lower_alpha=hash_default_lower_alpha, const float &__upper_alpha=hash_default_upper_alpha, const bool __remove_all_buckets=true, const bool __with_resize=true) throw (std::exception, std::length_error, std::domain_error, std::bad_alloc, std::overflow_error) | |
void | swap (GenLinearHashTable &other) |
void | empty () |
Bucket * | search (const Key &key) const |
const size_t & | size () const |
Retorna la cantidad de elementos que tiene la tabla. | |
bool | is_empty () const |
return true is table is empty | |
const size_t & | capacity () const |
Retorna el tamaño de la tabla. | |
const size_t & | busy_slots () const |
Retorna la cantidad de entradas vacía que tiene la tabla. | |
const size_t & | expansions () const |
Bucket * | insert (Bucket *bucket) |
size_t | resize (size_t) |
Provided for generic programming compatibility. | |
Bucket * | remove (Bucket *bucket) |
void | print () |
HASH_STATS () | |
Atributos protegidos heredados desde Aleph::GenLinearHashTable< Key, LinHashBucketVtl, Cmp > | |
Hash_Fct | hash_fct |
float | upper_alpha |
float | lower_alpha |
size_t | len |
Tabla hash lineal con destructor virtual en sus cubetas.
Básicamente, una tabla hash lineal es una tabla hash con resolución de colisiones por encadenamiento separado pero con la diferencia de que el tamaño de la tabla aumenta dinámicamente para asegurar que el factor de carga, típicamente llamado , 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. |