Classe de base d'une table de hachage pour tableaux associatifs. Plus de détails...
#include <arcane/utils/HashTable.h>
Classes | |
struct | HashData |
Types publics | |
typedef TraitsType::KeyTypeConstRef | KeyTypeConstRef |
typedef TraitsType::KeyTypeValue | KeyTypeValue |
Fonctions membres publiques | |
HashTableBaseT (Integer table_size, bool use_prime) | |
Crée une table de taille table_size. | |
bool | hasKey (KeyTypeConstRef id) const |
true si une valeur avec la clé id est présente | |
void | clear () |
Supprime tous les éléments de la table. | |
void | resize (Integer new_table_size, bool use_prime=false) |
Redimensionne la table de hachage. | |
void | rehash () |
Repositionne les données après changement de valeur des clés. | |
Fonctions membres publiques hérités de Arcane::HashTableBase | |
HashTableBase (Integer table_size, bool use_prime) | |
Crée une table de taille table_size. | |
Integer | nearestPrimeNumber (Integer n) |
Retourne le nombre premier le plus proche de n par excès. Le nombre premier le plus proche et supérieur à n est renvoyé en utilisant une table de nombre premier déterminée à l'avance. | |
Integer | count () const |
Nombre d'éléments dans la table. | |
Fonctions membres protégées | |
Integer | _hash (KeyTypeConstRef id) const |
HashData * | _baseLookupBucket (Integer bucket, KeyTypeConstRef id) const |
HashData * | _baseRemoveBucket (Integer bucket, KeyTypeConstRef id) |
HashData * | _baseLookup (KeyTypeConstRef id) const |
HashData * | _baseRemove (KeyTypeConstRef id) |
void | _baseAdd (Integer bucket, KeyTypeConstRef id, HashData *hd) |
Fonctions membres protégées hérités de Arcane::HashTableBase | |
void _throwNotFound | ARCANE_NORETURN () const |
Attributs protégés | |
UniqueArray< HashData * > | m_buckets |
Attributs protégés hérités de Arcane::HashTableBase | |
Integer | m_count |
Nombre d'éléments. | |
Integer | m_nb_bucket |
Nombre de buckets. | |
Classe de base d'une table de hachage pour tableaux associatifs.
Cette table permet de stocker une valeur en fonction d'une clé. Le type de la valeur est gérée par la classe dérivée HashTableMapT.
La table de hachage est gérée sous forme d'un tableau dont le nombre d'éléments est donné par la taille de la table (m_nb_bucket). Les éléments sont ensuite rangés dans une liste chaînée.
Cette table permet uniquement d'ajouter des valeurs.
Pour des raisons de performance, il est préférable que le taille de la table (buckets) soit un nombre premier.
Définition à la ligne 97 du fichier HashTable.h.
typedef TraitsType::KeyTypeConstRef Arcane::HashTableBaseT< KeyType, TraitsType >::KeyTypeConstRef |
Définition à la ligne 102 du fichier HashTable.h.
typedef TraitsType::KeyTypeValue Arcane::HashTableBaseT< KeyType, TraitsType >::KeyTypeValue |
Définition à la ligne 103 du fichier HashTable.h.
|
inline |
Crée une table de taille table_size.
Si use_prime est vrai, utilise la fonction nearestPrimeNumber() pour avoir une taille de taille qui est un nombre premier.
Définition à la ligne 144 du fichier HashTable.h.
|
inlineprotected |
Définition à la ligne 250 du fichier HashTable.h.
|
inlineprotected |
Définition à la ligne 242 du fichier HashTable.h.
|
inlineprotected |
Définition à la ligne 214 du fichier HashTable.h.
|
inlineprotected |
Définition à la ligne 246 du fichier HashTable.h.
|
inlineprotected |
Définition à la ligne 222 du fichier HashTable.h.
|
inlineprotected |
Définition à la ligne 210 du fichier HashTable.h.
|
inline |
Supprime tous les éléments de la table.
Définition à la ligne 165 du fichier HashTable.h.
Références Arcane::HashTableBase::m_count.
Référencé par Arcane::HashTableBaseT< KeyType, TraitsType >::resize().
|
inline |
true si une valeur avec la clé id est présente
Définition à la ligne 154 du fichier HashTable.h.
|
inline |
Repositionne les données après changement de valeur des clés.
Définition à la ligne 193 du fichier HashTable.h.
Références Arcane::HashTableBaseT< KeyType, TraitsType >::HashData::m_key.
|
inline |
Redimensionne la table de hachage.
Définition à la ligne 172 du fichier HashTable.h.
Références Arcane::HashTableBaseT< KeyType, TraitsType >::clear(), Arcane::HashTableBase::m_nb_bucket, et Arcane::HashTableBase::nearestPrimeNumber().
|
protected |
Définition à la ligne 261 du fichier HashTable.h.