#include <tpl_olhash.H>
Clases | |
struct | Bucket |
Tipos públicos | |
enum | Status { EMPTY, BUSY, DELETED } |
typedef Key | Key_Type |
typedef Key | Item_Type |
typedef size_t(* | Hash_Fct )(const Key &) |
El tipo de función hash. | |
Métodos públicos | |
OLhashTable (Hash_Fct __hash_fct=Aleph::dft_hash_fct< Key >, Hash_Fct null_hash_fct=NULL, 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) | |
~OLhashTable () | |
Libera toda la memoria ocupada. | |
void | swap (OLhashTable &other) |
OLhashTable (const OLhashTable &other) | |
OLhashTable (OLhashTable &&other) | |
OLhashTable & | operator= (const OLhashTable &other) |
OLhashTable & | operator= (OLhashTable &&other) |
Key * | search (const Key &key) const |
void | remove (const Key &key) |
OHASH_COMMON (OLhashTable) | |
Generic_Traverse (Key) | |
Functional_Methods (Key) Equal_To_Method(OLhashTable) | |
Stats | stats () const |
Métodos públicos estáticos | |
static Bucket * | key_to_bucket (Key *rec) |
Atributos públicos | |
Bucket * | table |
size_t | N |
Atributos protegidos | |
size_t | len |
float | lower_alpha |
float | upper_alpha |
Tabla hash con resolución de colisiones por direccionamiento abierto y sondeo lineal de cubetas disponibles.
Este tipo instrumenta una tabla hash cerrada (el arreglo es contiguo en memoria), que guarda las colisiones dentro de la misma tabla. Cuando hay una colisión, se sondea linealmente la primera cubeta a partir del índice dado por la función hash.
OLhashTable maneja tres parámetros tipo:
|
inline |
Instancia una tabla hash con función hash __hash_fct y dimensión len.
|
inline |
Elimina la clave apuntada por key
|
inline |
Busca la clave key y retorna el registro asociado si key se encuentra dentro de la tabla; de lo contrario, retorna NULL.