Classes | |
struct | Data |
Types publics | |
typedef KeyTraitsType::KeyTypeConstRef | KeyTypeConstRef |
typedef KeyTraitsType::KeyTypeValue | KeyTypeValue |
typedef KeyTraitsType::Printable | Printable |
typedef KeyTraitsType::HashValueType | HashValueType |
typedef HashTableMapT< KeyType, ValueType, KeyTraitsType > | ThatClass |
typedef HashTableMapEnumeratorT< KeyType, ValueType > | Enumerator |
Fonctions membres publiques | |
HashTableMapT (Integer table_size, bool use_prime) | |
Crée une table de taille table_size. | |
HashTableMapT (Integer table_size, bool use_prime, Integer buffer_size) | |
Crée une table de taille table_size. | |
ThatClass & | operator= (const ThatClass &from) |
Opérateur de recopie. | |
bool | hasKey (KeyTypeConstRef id) |
true si une valeur avec la clé id est présente | |
void | clear () |
Supprime tous les éléments de la table. | |
Data * | lookup (KeyTypeConstRef id) |
Recherche la valeur correspondant à la clé id. | |
const Data * | lookup (KeyTypeConstRef id) const |
Recherche la valeur correspondant à la clé id. | |
ValueType & | lookupValue (KeyTypeConstRef id) |
Recherche la valeur correspondant à la clé id. | |
ValueType & | operator[] (KeyTypeConstRef id) |
Recherche la valeur correspondant à la clé id. | |
const ValueType & | lookupValue (KeyTypeConstRef id) const |
Recherche la valeur correspondant à la clé id. | |
const ValueType & | operator[] (KeyTypeConstRef id) const |
Recherche la valeur correspondant à la clé id. | |
bool | add (KeyTypeConstRef id, const ValueType &value) |
Ajoute la valeur value correspondant à la clé id. | |
void | remove (KeyTypeConstRef id) |
Supprime la valeur associée à la clé id. | |
Data * | lookupAdd (KeyTypeConstRef id, const ValueType &value, bool &is_add) |
Recherche ou ajoute la valeur correspondant à la clé id. | |
Data * | lookupAdd (KeyTypeConstRef id) |
Recherche ou ajoute la valeur correspondant à la clé id. | |
void | nocheckAdd (KeyTypeConstRef id, const ValueType &value) |
Ajoute la valeur value correspondant à la clé id. | |
ArrayView< Data * > | buckets () |
ConstArrayView< Data * > | buckets () const |
void | resize (Integer new_size, bool use_prime=false) |
Redimensionne la table de hachage. | |
void | rehash () |
Repositionne les données après changement de valeur des clés. | |
template<class Lambda > | |
void | each (const Lambda &lambda) |
Applique le fonctor f à tous les éléments de la collection. | |
template<class Lambda > | |
void | eachValue (const Lambda &lambda) |
Applique le fonctor f à tous les éléments de la collection et utilise x->value() (de type ValueType) comme argument. | |
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. | |
Attributs publics | |
Int64 | m_nb_collision = 0 |
Int64 | m_nb_direct = 0 |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arcane::HashTableBase | |
void _throwNotFound | ARCANE_NORETURN () const |
Attributs protégés hérités de Arcane::HashTableBase | |
Integer | m_count |
Nombre d'éléments. | |
Integer | m_nb_bucket |
Nombre de buckets. | |
Définition à la ligne 52 du fichier HashTableMap.h.
typedef HashTableMapEnumeratorT<KeyType, ValueType> Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::Enumerator |
Définition à la ligne 62 du fichier HashTableMap.h.
typedef KeyTraitsType::HashValueType Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::HashValueType |
Définition à la ligne 60 du fichier HashTableMap.h.
typedef KeyTraitsType::KeyTypeConstRef Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::KeyTypeConstRef |
Définition à la ligne 57 du fichier HashTableMap.h.
typedef KeyTraitsType::KeyTypeValue Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::KeyTypeValue |
Définition à la ligne 58 du fichier HashTableMap.h.
typedef KeyTraitsType::Printable Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::Printable |
Définition à la ligne 59 du fichier HashTableMap.h.
typedef HashTableMapT<KeyType, ValueType, KeyTraitsType> Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::ThatClass |
Définition à la ligne 61 du fichier HashTableMap.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 108 du fichier HashTableMap.h.
Références Arcane::HashTableBase::m_nb_bucket.
|
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 126 du fichier HashTableMap.h.
Références Arcane::HashTableBase::m_nb_bucket.
|
inline |
Définition à la ligne 138 du fichier HashTableMap.h.
|
inline |
Ajoute la valeur value correspondant à la clé id.
Si une valeur correspondant à id existe déjà, elle est remplacée.
true | si la clé est ajoutée |
false | si la clé existe déjà et est remplacée |
Définition à la ligne 262 du fichier HashTableMap.h.
Références Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::Data::m_value.
|
inline |
Définition à la ligne 349 du fichier HashTableMap.h.
|
inline |
Définition à la ligne 354 du fichier HashTableMap.h.
|
inline |
Supprime tous les éléments de la table.
Définition à la ligne 180 du fichier HashTableMap.h.
Références Arcane::HashTableBase::m_count.
Référencé par Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::resize().
|
inline |
Applique le fonctor f à tous les éléments de la collection.
Définition à la ligne 384 du fichier HashTableMap.h.
|
inline |
Applique le fonctor f à tous les éléments de la collection et utilise x->value() (de type ValueType) comme argument.
Définition à la ligne 399 du fichier HashTableMap.h.
|
inline |
true si une valeur avec la clé id est présente
Définition à la ligne 169 du fichier HashTableMap.h.
|
inline |
Recherche la valeur correspondant à la clé id.
Définition à la ligne 191 du fichier HashTableMap.h.
|
inline |
Recherche la valeur correspondant à la clé id.
Définition à la ligne 201 du fichier HashTableMap.h.
|
inline |
Recherche ou ajoute la valeur correspondant à la clé id.
Si la clé id est déjà dans la table, retourne une référence sur cette valeur et positionne is_add à false
. Sinon, ajoute la clé id avec pour valeur ValueType() (qui doit exister).
La structure retournée n'est jamais nul et peut être conservée car elle ne change pas d'adresse tant que cette instance de la table de hachage existe
Définition à la ligne 322 du fichier HashTableMap.h.
|
inline |
Recherche ou ajoute la valeur correspondant à la clé id.
Si la clé id est déjà dans la table, retourne une référence sur cette valeur et positionne is_add à false
. Sinon, ajoute la clé id avec pour valeur value et positionne is_add à true
.
La structure retournée n'est jamais nul et peut être conservée car elle ne change pas d'adresse tant que cette instance de la table de hachage existe
Définition à la ligne 296 du fichier HashTableMap.h.
|
inline |
Recherche la valeur correspondant à la clé id.
Une exception est générée si la valeur n'est pas trouvé.
Définition à la ligne 211 du fichier HashTableMap.h.
Référencé par Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::operator[](), et Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::operator[]().
|
inline |
Recherche la valeur correspondant à la clé id.
Une exception est générée si la valeur n'est pas trouvé.
Définition à la ligne 235 du fichier HashTableMap.h.
Références Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::Data::m_value.
|
inline |
Ajoute la valeur value correspondant à la clé id.
Si une valeur correspondant à id existe déjà, le résultat est indéfini.
Définition à la ligne 342 du fichier HashTableMap.h.
|
inline |
Opérateur de recopie.
Définition à la ligne 144 du fichier HashTableMap.h.
Références Arcane::HashTableBase::m_count, et Arcane::HashTableBase::m_nb_bucket.
|
inline |
Recherche la valeur correspondant à la clé id.
Une exception est générée si la valeur n'est pas trouvé.
Définition à la ligne 225 du fichier HashTableMap.h.
Références Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::lookupValue().
|
inline |
Recherche la valeur correspondant à la clé id.
Une exception est générée si la valeur n'est pas trouvé.
Définition à la ligne 249 du fichier HashTableMap.h.
Références Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::lookupValue().
|
inline |
Repositionne les données après changement de valeur des clés.
Définition à la ligne 375 du fichier HashTableMap.h.
Références Arcane::HashTableBase::m_nb_bucket.
|
inline |
Supprime la valeur associée à la clé id.
Définition à la ligne 278 du fichier HashTableMap.h.
|
inline |
Redimensionne la table de hachage.
Définition à la ligne 360 du fichier HashTableMap.h.
Références Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::clear(), Arcane::HashTableBase::m_nb_bucket, et Arcane::HashTableBase::nearestPrimeNumber().
|
mutable |
Définition à la ligne 445 du fichier HashTableMap.h.
|
mutable |
Définition à la ligne 446 du fichier HashTableMap.h.