Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::HashTableBaseT< KeyType, TraitsType >

Classe de base d'une table de hachage pour tableaux associatifs. Plus de détails...

#include <arcane/utils/HashTable.h>

+ Graphe d'héritage de Arcane::HashTableBaseT< KeyType, TraitsType >:
+ Graphe de collaboration de Arcane::HashTableBaseT< KeyType, TraitsType >:

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.
 

Description détaillée

template<typename KeyType, typename TraitsType>
class Arcane::HashTableBaseT< KeyType, TraitsType >

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.

Documentation des définitions de type membres

◆ KeyTypeConstRef

template<typename KeyType , typename TraitsType >
typedef TraitsType::KeyTypeConstRef Arcane::HashTableBaseT< KeyType, TraitsType >::KeyTypeConstRef

Définition à la ligne 102 du fichier HashTable.h.

◆ KeyTypeValue

template<typename KeyType , typename TraitsType >
typedef TraitsType::KeyTypeValue Arcane::HashTableBaseT< KeyType, TraitsType >::KeyTypeValue

Définition à la ligne 103 du fichier HashTable.h.

Documentation des constructeurs et destructeur

◆ HashTableBaseT()

template<typename KeyType , typename TraitsType >
Arcane::HashTableBaseT< KeyType, TraitsType >::HashTableBaseT ( Integer  table_size,
bool  use_prime 
)
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.

Documentation des fonctions membres

◆ _baseAdd()

template<typename KeyType , typename TraitsType >
void Arcane::HashTableBaseT< KeyType, TraitsType >::_baseAdd ( Integer  bucket,
KeyTypeConstRef  id,
HashData hd 
)
inlineprotected

Définition à la ligne 250 du fichier HashTable.h.

◆ _baseLookup()

template<typename KeyType , typename TraitsType >
HashData * Arcane::HashTableBaseT< KeyType, TraitsType >::_baseLookup ( KeyTypeConstRef  id) const
inlineprotected

Définition à la ligne 242 du fichier HashTable.h.

◆ _baseLookupBucket()

template<typename KeyType , typename TraitsType >
HashData * Arcane::HashTableBaseT< KeyType, TraitsType >::_baseLookupBucket ( Integer  bucket,
KeyTypeConstRef  id 
) const
inlineprotected

Définition à la ligne 214 du fichier HashTable.h.

◆ _baseRemove()

template<typename KeyType , typename TraitsType >
HashData * Arcane::HashTableBaseT< KeyType, TraitsType >::_baseRemove ( KeyTypeConstRef  id)
inlineprotected

Définition à la ligne 246 du fichier HashTable.h.

◆ _baseRemoveBucket()

template<typename KeyType , typename TraitsType >
HashData * Arcane::HashTableBaseT< KeyType, TraitsType >::_baseRemoveBucket ( Integer  bucket,
KeyTypeConstRef  id 
)
inlineprotected

Définition à la ligne 222 du fichier HashTable.h.

◆ _hash()

template<typename KeyType , typename TraitsType >
Integer Arcane::HashTableBaseT< KeyType, TraitsType >::_hash ( KeyTypeConstRef  id) const
inlineprotected

Définition à la ligne 210 du fichier HashTable.h.

◆ clear()

template<typename KeyType , typename TraitsType >
void Arcane::HashTableBaseT< KeyType, TraitsType >::clear ( )
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().

◆ hasKey()

template<typename KeyType , typename TraitsType >
bool Arcane::HashTableBaseT< KeyType, TraitsType >::hasKey ( KeyTypeConstRef  id) const
inline

true si une valeur avec la clé id est présente

Définition à la ligne 154 du fichier HashTable.h.

◆ rehash()

template<typename KeyType , typename TraitsType >
void Arcane::HashTableBaseT< KeyType, TraitsType >::rehash ( )
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.

◆ resize()

template<typename KeyType , typename TraitsType >
void Arcane::HashTableBaseT< KeyType, TraitsType >::resize ( Integer  new_table_size,
bool  use_prime = false 
)
inline

Documentation des données membres

◆ m_buckets

template<typename KeyType , typename TraitsType >
UniqueArray<HashData*> Arcane::HashTableBaseT< KeyType, TraitsType >::m_buckets
protected

Définition à la ligne 261 du fichier HashTable.h.


La documentation de cette classe a été générée à partir du fichier suivant :