|
void | swap (ODhashTable &other) |
|
| ODhashTable (Hash_Fct __first_hash_fct=Aleph::dft_hash_fct< Key >, Hash_Fct __second_hash_fct=Aleph::snd_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 __with_resize=true) |
|
| ~ODhashTable () |
| Libera toda la tabla hash.
|
|
| ODhashTable (const ODhashTable &other) |
|
| ODhashTable (ODhashTable &&other) |
|
ODhashTable & | operator= (const ODhashTable &other) |
|
ODhashTable & | operator= (ODhashTable &&other) |
|
| OHASH_COMMON (ODhashTable) |
|
| Generic_Traverse (Key) |
|
| Functional_Methods (Key) |
|
| Equal_To_Method (ODhashTable) |
|
Key * | search (const Key &key) const |
|
Hash_Fct | get_second_hash_fct () const |
|
void | set_second_hash_fct (Hash_Fct fct) |
|
void | remove (const Key &key) |
|
Stats | stats () const |
|
template<typename Key, class Cmp = Aleph::equal_to<Key>>
class Aleph::ODhashTable< Key, Cmp >
Tabla hash cerrada con resolución de colisiones por doble función hash.
Este tipo instrumenta una tabla hash cerrada (el arreglo es contiguo en memoria), que guarda las colisiones dentro de la misma tabla. Cuando ocurre una colisión, se invoca una segunda función hash que para sondear una cubeta disponible. Si se encuentra, entonces la clave y el registro se colocan en la cubeta disponible; de lo contrario, se sondea linealmente a partir del índice dado por la segunda función hash.
La tabla emplea un método que elimina sin relocalización y en tiempo constante las cubetas eliminadas que están en el medio de una cadena de búsqueda.
ODhashTable maneja dos parámetros tipo:
- Key: el tipo de dato que guarda la tabla.
- Record: el tipo de dato a mapear por la clave.
- Cmp clase de comparación entre las claves; debe retornar true si las claves son iguales.