|
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 () |
|
template<typename Key, template< class > class BucketType, class Cmp = Aleph::equal_to<Key>>
class Aleph::GenLinearHashTable< Key, BucketType, Cmp >
Tabla hash lineal genérica.
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.
Este tipo es genérico y no está destinado a usarse. En su lugar, utilícese LinearHashTable o LinearHashTableVtl según se desee utilizar cubetas sin o con destructor virtual.
- Parámetros
-
Key | el tipo de clave por el cual se indiza la tabla. |
BucketType | el tipo de cubeta entre LinHashBucket o LinHashBucketVtl. |
Cmp | clase de comparación entre las claves. |
- Ver también
- DynArray LinearHashTable LinearHashTableVtl