Bibliothèque C ++ - <unordered_map>

Introduction à unordered_map

Une carte non ordonnée est une structure de données semblable à un dictionnaire. Il s'agit d'une séquence de paires (clé, valeur), où une seule valeur est associée à chaque clé unique. Il est souvent appelé tableau associatif . Il permet une récupération rapide des éléments individuels en fonction de leurs clés. Il implémente également l' opérateur d'accès direct (opérateur d'indice []) qui permet un accès direct à la valeur mappée en utilisant sa valeur de clé comme argument.

La carte non ordonnée ne trie pas son élément dans un ordre particulier par rapport à sa clé ou à ses valeurs mappées, mais s'organise en compartiments en fonction de leurs valeurs de hachage pour permettre un accès rapide aux éléments individuels directement par leurs valeurs de clé.

La carte non ordonnée fonctionne mieux que la carte tout en accédant à des éléments individuels par leurs clés. Mais pour l'itération de plage, leurs performances sont considérablement faibles.

Définition

Ci-dessous la définition de std :: unordered_map du fichier d'en-tête <unordered_map>

template < class Key,
           class T,
           class Hash = hash<Key>,
           class Pred = equal_to<Key>,
           class Alloc = allocator< pair<const Key,T> >
           > class unordered_map;

Paramètres

  • Key - Type de clé.

  • T - Type des valeurs mappées.

  • Hash- Un type d'objet fonction unaire qui prend un objet de type clé de type comme argument et renvoie une valeur unique de type size_t basée sur celle-ci.

  • Pred- Un prédicat binaire dont deux arguments de type clé et renvoie un booléen.

  • Alloc - Type de l'objet allocateur.

  • T peut être remplacé par tout autre type de données, y compris le type défini par l'utilisateur.

Types de membres

Les types de membres suivants peuvent être utilisés comme paramètres ou comme type de retour par les fonctions membres.

N ° Sr. Types de membres Définition
1 type de clé Clé (premier paramètre du modèle)
2 mapped_type T (deuxième paramètre du modèle)
3 type de valeur paire <const key_type, mapped_type>
4 hasher Le troisième paramètre de modèle (par défaut: hash <key_type>)
5 key_equal Le quatrième paramètre de modèle (par défaut: equal_to <key_type>)
6 allocator_type Alloc (cinquième paramètre du modèle)
sept référence type de valeur&
8 const_reference const value_type &
9 aiguille allocator_traits <Alloc> :: pointeur
dix const_pointer allocator_traits <Alloc> :: const_pointer
11 itérateur Un itérateur avant vers value_type value_type
12 const_iterator Un itérateur avant vers const value_type value_type
13 local_iterator Un itérateur avant vers value_type
14 const_local_iterator Un itérateur avant vers const value_type
15 difference_type ptrdiff_t
16 type de taille size_t

Fonctions de <unordered_map>

Voici la liste de toutes les méthodes de l'en-tête <unordered_map>.

Constructeurs

N ° Sr. Méthode et description
1 unordered_map :: unordered_map constructeur par défaut

Construit un unordered_map vide avec zéro élément.

2 unordered_map :: unordered_map constructeur de copie

Construit un unordered_map avec une copie de chaque élément présent dans unordered_map existant.

3 unordered_map :: unordered_map move constructeur

Construit un unordered_map avec le contenu des autres en utilisant la sémantique de déplacement.

4 unordered_map :: unordered_map constructeur de plage

Construit un unordered_map avec autant d'éléments que dans la plage du premier au dernier .

5 unordered_map :: unordered_map constructeur initializer_list

Construit un unordered_map à partir de la liste d'initialisation.

Destructeur

N ° Sr. Méthode et description
1 unordered_map :: ~ unordered_map

Détruit l'objet unordered_map en désallouant sa mémoire.

Fonctions des membres

N ° Sr. Méthode et description
1 unordered_map :: at

Renvoie une référence à la valeur mappée associée à la clé k .

2 unordered_map :: commence l' itérateur du conteneur

Renvoie un itérateur qui fait référence au premier élément de la carte.

3 unordered_map :: commence l' itérateur du bucket

Renvoie un itérateur pointant vers le premier élément de l'un de ses compartiments.

4 unordered_map :: bucket

Renvoie le numéro de compartiment où se trouve l'élément avec la clé k .

5 unordered_map :: bucket_count

Renvoie le nombre de compartiments dans le conteneur unordered_map.

6 unordered_map :: bucket_size

Renvoie le nombre d'éléments présents dans le n ème compartiment.

sept unordered_map :: itérateur de conteneur cbegin

Renvoie un itérateur constant qui fait référence au premier élément de unordered_map.

8 itérateur de bucket unordered_map :: cbegin

Renvoie un itérateur constant pointant vers le premier élément de l'un de ses compartiments.

9 unordered_map :: cend l' itérateur du conteneur

Renvoie un itérateur constant qui pointe vers l' élément au-delà de la fin de unordered_map.

dix unordered_map :: cend un itérateur de bucket

Renvoie un itérateur constant qui pointe vers l' élément au -delà de la fin dans l'un de ses compartiments.

11 unordered_map :: clear

Détruit le unordered_map en supprimant tous les éléments et définit la taille de unordered_map à zéro .

12 unordered_map :: count

Renvoie le nombre de valeurs mappées associées à la clé k .

13 unordered_map :: emplace

Étend le conteneur en insérant un nouvel élément.

14 unordered_map :: emplace_hint

Insère un nouvel élément dans unordered_map en utilisant hint comme position pour l'élément.

15 unordered_map :: vide

Teste si unordered_map est vide ou non.

16 unordered_map :: end itérateur de conteneur

Renvoie un itérateur qui pointe vers l' élément au -delà de la fin dans unordered_map.

17 unordered_map :: end itérateur de bucket

Renvoie un itérateur qui pointe vers l' élément au -delà de la fin dans l'un de ses compartiments.

18 unordered_map :: égal

Renvoie une plage d'éléments correspondant à une clé spécifique.

19 unordered_map :: effacer la version de position

Supprime un seul élément de la position unordered_map .

20 unordered_map :: effacer la version de la clé

Supprime la valeur mappée associée à la clé k .

21 unordered_map :: effacer la version de la plage

Supprime la plage d'élément de la unordered_map.

22 unordered_map :: trouver

Recherche un élément associé à la clé k .

23 unordered_map :: get_allocator

Renvoie un allocateur associé à unordered_map.

24 unordered_map :: hash_function

Calcule l'objet de fonction de hachage utilisé par le conteneur unordered_map.

25 unordered_map :: insert

Étend le conteneur en insérant un nouvel élément dans unordered_map.

26 unordered_map :: insérer la version de déplacement

Étend le conteneur en insérant un nouvel élément dans unordered_map.

27 unordered_map :: insérer la version de l'indice

Étend le contenu en insérant un nouvel élément dans unordered_map.

28 unordered_map :: insérer une version de déplacement et d'indication

Étend unordered_map en insérant un nouvel élément.

29 unordered_map :: insérer la version de la plage

Étend le conteneur en insérant de nouveaux éléments dans unordered_map.

30 unordered_map :: insérer la version de la liste d'initialisation

Étend la carte en insérant un nouvel élément de la liste d'initialisation.

31 unordered_map :: key_eq

Renvoie la fonction qui compare les clés pour l'égalité.

32 unordered_map :: load_factor

Renvoie le facteur de charge actuel du conteneur unordered_map.

33 unordered_map :: max_bucket_count

Renvoie le nombre maximal de compartiments que le conteneur unordered_map peut avoir.

34 unordered_map :: max_load_factor obtenir la version

Renvoie le facteur de charge maximal actuel pour le conteneur unordered_map.

35 unordered_map :: max_load_factor set version

Attribue un nouveau facteur de charge pour le conteneur unordered_map.

36 unordered_map :: max_size

Renvoie le nombre maximum d'éléments que peut contenir unordered_map.

37 unordered_map :: operator = copie de la version

Assigne un nouveau contenu à unordered_map en remplaçant les anciens et modifie la taille si nécessaire.

38 unordered_map :: operator = déplacer la version

Déplacez le contenu d'un unordered_map dans un autre et modifiez la taille si nécessaire.

39 unordered_map :: operator = version initializer_list

Copiez les éléments de la liste d'initialisation vers unordered_map.

40 unordered_map :: opérateur []

Si la clé k correspond à un élément du conteneur, la méthode renvoie une référence à l'élément.

41 unordered_map :: operator [] déplacer la version

Si la clé k correspond à un élément du conteneur, la méthode renvoie une référence à l'élément.

42 unordered_map :: rehash

Définit le nombre de compartiments dans le conteneur sur n ou plus.

43 unordered_map :: reserve

Définit le nombre de compartiments dans le conteneur le plus approprié pour contenir au moins n éléments.

44 unordered_map :: taille

Renvoie le nombre d'éléments présents dans unordered_map.

45 unordered_map :: swap

Échange le contenu du premier unordered_map avec un autre.

Fonctions surchargées non membres

N ° Sr. Méthode et description
1 unordered_map :: opérateur ==

Teste si deux unordered_maps sont égaux ou non.

2 unordered_map :: opérateur! =

Teste si deux unordered_maps sont égaux ou non.

3 unordered_map :: swap

Échange le contenu du premier unordered_map avec un autre.

Introduction à unordered_multimap

Unordered_multimap est une structure de données semblable à un dictionnaire. C'est une séquence de paires (clé, valeur), où différents éléments peuvent avoir des clés équivalentes. Les éléments avec des clés équivalentes sont regroupés dans le même compartiment et de manière à ce qu'un itérateur equal_range puisse les parcourir tous.

Unordered_multimap ne trie pas son élément dans un ordre particulier par rapport à sa clé ou à ses valeurs mappées, mais s'organise en compartiments en fonction de leurs valeurs de hachage pour permettre un accès rapide aux éléments individuels directement par leurs valeurs de clé.

Définition

Ci-dessous la définition de std :: unordered_multimap du fichier d'en-tête <unordered_map>

template < class Key, 
           class T,
           class Hash = hash<Key>,
           class Pred = equal_to<Key>,
           class Alloc = allocator< pair<const Key,T> >
           > class unordered_multimap;

Paramètres

  • Key - Type de clé.

  • T - Type des valeurs mappées.

  • Hash- Un type d'objet fonction unaire qui prend un objet de type clé de type comme argument et renvoie une valeur unique de type size_t basée sur celle-ci.

  • Pred- Un prédicat binaire dont deux arguments de type clé et renvoie un booléen.

  • Alloc - Type de l'objet allocateur.

    T peut être remplacé par tout autre type de données, y compris le type défini par l'utilisateur.

Types de membres

Les types de membres suivants peuvent être utilisés comme paramètres ou comme type de retour par les fonctions membres.

N ° Sr. Types de membres Définition
1 type de clé Clé (premier paramètre du modèle)
2 mapped_type T (deuxième paramètre du modèle)
3 type de valeur paire <const key_type, mapped_type>
4 hasher Le troisième paramètre de modèle (par défaut: hash <key_type>)
5 key_equal Le quatrième paramètre de modèle (par défaut: equal_to <key_type>)
6 allocator_type Alloc (cinquième paramètre du modèle)
sept référence type de valeur&
8 const_reference const value_type &
9 aiguille allocator_traits <Alloc> :: pointeur
dix const_pointer allocator_traits <Alloc> :: const_pointer
11 itérateur Un itérateur avant vers value_type value_type
12 const_iterator Un itérateur avant vers const value_type value_type
13 local_iterator Un itérateur avant vers value_type
14 const_local_iterator Un itérateur avant vers const value_type
15 difference_type ptrdiff_t
16 type de taille size_t

Fonctions de <unordered_multimap>

Voici la liste de toutes les méthodes de l'en-tête <unordered_map>.

Constructeurs

N ° Sr. Méthode et description
1 unordered_multimap :: unordered_multimap () constructeur par défaut

Construit une carte unordered_multimap vide avec zéro élément.

2 unordered_multimap :: unordered_multimap () copy constructeur

Construit un unordered_multimap avec une copie de chaque élément présent dans unordered_multimap existant.

3 unordered_multimap :: unordered_multimap () déplacer le constructeur

Construit un unordered_multimap avec le contenu d'autres en utilisant la sémantique de déplacement.

4 unordered_multimap :: unordered_multimap () range constructeur

Construit un unordered_multimap avec autant d'éléments que dans la plage du premier au dernier .

5 unordered_multimap :: unordered_multimap () constructeur initializer_list

Construit un unordered_multimap à partir de la liste d'initialisation.

Destructeur

N ° Sr. Méthode et description
1 unordered_multimap :: ~ unordered_multimap ()

Détruit l'objet unordered_multimap en désallouant sa mémoire.

Fonctions des membres

N ° Sr. Méthode et description
1 itérateur de conteneur unordered_multimap :: begin ()

Renvoie un itérateur qui fait référence au premier élément de unordered_mulitmap.

2 itérateur de bucket unordered_multimap :: begin ()

Renvoie un itérateur pointant vers le premier élément de l'un de ses compartiments.

3 unordered_multimap :: bucket ()

Renvoie le numéro de compartiment où se trouve l'élément avec la clé k .

4 unordered_multimap :: bucket_count ()

Renvoie le nombre de compartiments présents dans le conteneur unordered_multimap.

5 unordered_multimap :: bucket_size ()

Renvoie le nombre d'éléments présents dans le n ème compartiment.

6 itérateur de conteneur unordered_multimap :: cbegin ()

Renvoie un itérateur constant qui fait référence au premier élément de unordered_multimap.

sept itérateur de bucket unordered_multimap :: cbegin ()

Renvoie un itérateur constant pointant vers le premier élément de l'un de ses compartiments.

8 itérateur de conteneur unordered_multimap :: cend ()

Renvoie un itérateur constant qui pointe vers l' élément au-delà de la fin de unordered_multimap.

9 itérateur de bucket unordered_multimap :: cend ()

Renvoie un itérateur constant qui pointe vers l' élément au -delà de la fin dans l'un de ses compartiments.

dix unordered_multimap :: clear ()

Détruit le unordered_multimap en supprimant tous les éléments et définit la taille de unordered_multimap sur zéro .

11 unordered_multimap :: count ()

Renvoie le nombre de valeurs mappées associées à la clé k .

12 unordered_multimap :: emplace ()

Étend le conteneur en insérant un nouvel élément.

13 unordered_multimap :: emplace_hint ()

Insère un nouvel élément dans un unordered_multimap en utilisant hint comme position pour l'élément.

14 unordered_multimap :: empty ()

Teste si unordered_multimap est vide ou non.

15 itérateur de conteneur unordered_multimap :: end ()

Renvoie un itérateur qui pointe vers l' élément au -delà de la fin dans unordered_multimap.

16 itérateur de bucket unordered_multimap :: end ()

Renvoie un itérateur qui pointe vers l' élément au -delà de la fin dans l'un de ses compartiments.

17 unordered_multimap :: equal_range ()

Renvoie une plage d'éléments correspondant à une clé spécifique.

18 version de position unordered_multimap :: erase ()

Supprime un seul élément de la position unordered_multimap .

19 version de la clé unordered_multimap :: erase ()

Supprime la valeur mappée associée à la clé k .

20 version de la plage unordered_multimap :: erase ()

Supprime la plage d'élément de la unordered_multimap.

21 unordered_multimap :: find ()

Recherche un élément associé à la clé k .

22 unordered_multimap :: get_allocator ()

Renvoie un allocateur associé à unordered_multimap.

23 unordered_multimap :: hash_function ()

Calcule l'objet de fonction de hachage utilisé par le conteneur unordered_multimap.

24 version de la valeur unordered_multimap :: insert ()

Étend le conteneur en insérant un nouvel élément dans unordered_multimap.

25 unordered_multimap :: insert () déplacer la version

Étend unordered_multimap en insérant un nouvel élément.

26 unordered_multimap :: insert () version de l'indice

Étend le conteneur en insérant un nouvel élément dans unordered_multimap.

27 unordered_multimap :: insert () astuce déplacer la version

Étend le conteneur en insérant un nouvel élément dans unordered_multimap à l'aide de la sémantique de déplacement.

28 version de plage unordered_multimap :: insert ()

Étend le conteneur en insérant de nouveaux éléments dans unordered_multimap.

29 version unordered_multimap :: insert () initializer_list

Étend unordered_multimap en insérant un nouvel élément de la liste d'initialisation.

30 unordered_multimap :: key_eq ()

Renvoie la fonction qui compare les clés pour l'égalité.

31 unordered_multimap :: load_factor ()

Renvoie le facteur de charge actuel du conteneur unordered_multimap.

32 unordered_multimap :: max_bucket_count ()

Renvoie le nombre maximal de compartiments que le conteneur unordered_multimap peut avoir.

33 unordered_multimap :: max_load_factor () obtenir la version

Renvoie le facteur de charge maximal actuel pour le conteneur unordered_multimap.

34 unordered_multimap :: max_load_factor () définir la version

Attribue un nouveau facteur de charge pour le conteneur unordered_multimap.

35 unordered_multimap :: max_size ()

Renvoie le nombre maximum d'éléments que peut contenir unordered_multimap.

36 unordered_multimap :: operator = () copie la version

Assigne un nouveau contenu à unordered_multimap en remplaçant les anciens et modifie la taille si nécessaire.

37 unordered_multimap :: operator = () déplacer la version

Déplacez le contenu d'un unordered_multimap dans un autre et modifiez la taille si nécessaire.

38 unordered_multimap :: operator = () version de la liste d'initialisation

Copiez les éléments de la liste d'initialisation vers unordered_multimap.

39 unordered_multimap :: rehash ()

Définit le nombre de compartiments dans le conteneur sur n ou plus.

40 unordered_multimap :: reserve ()

Définit le nombre de compartiments dans le conteneur le plus approprié pour contenir au moins n éléments.

41 unordered_multimap :: size ()

Renvoie le nombre d'éléments présents dans unordered_multimap.

42 unordered_multimap :: swap ()

Echange le contenu du premier unordered_multimap avec un autre.

Fonctions surchargées non membres

N ° Sr. Méthode et description
1 unordered_multimap :: opérateur == ()

Teste si deux unordered_multimaps sont égaux ou non.

2 unordered_multimap :: opérateur! = ()

Teste si deux unordered_multimaps sont égaux ou non.

3 unordered_multimap :: swap ()

Echange le contenu du premier unordered_multimap avec un autre.