Les cartes sont conteneurs associatifs qui stockent les éléments de manière cartographiée. Chaque élément a une valeur clé et une valeur mappée. Deux valeurs mappées ne peuvent pas avoir les mêmes valeurs clés.
std::map est le modèle de classe pour les conteneurs de cartes et il est défini dans le fichier d'en-tête.
Fonctions membres std :: map de base
Certaines fonctions de base associées à std::map sont :
- commencer() – Renvoie un itérateur vers le premier élément de la carte.
- fin() – Renvoie un itérateur vers l'élément théorique qui suit le dernier élément de la carte.
- taille() – Renvoie le nombre d'éléments dans la carte.
- taille max() – Renvoie le nombre maximum d'éléments que la carte peut contenir.
- vide() – Indique si la carte est vide.
- paire insert (valeur clé, valeur map) – Ajoute un nouvel élément à la carte.
- effacer (position de l'itérateur) – Supprime l’élément à la position pointée par l’itérateur.
- effacer (const g) – Supprime la valeur-clé « g » de la carte.
- clair() – Supprime tous les éléments de la carte.
Exemples de std :: map
Les exemples suivants montrent comment effectuer des opérations de base sur des conteneurs de cartes.
Exemple 1 : fonctions start() et end()
C++
// C++ program to illustrate the begin and end iterator> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>député; // Insère quelques valeurs dans la carte mp['one'] = 1; mp['deux'] = 2; mp['trois'] = 3; // Récupère un itérateur pointant vers le premier élément de la // map mapint>::iterator it = mp.begin(); // Parcourez la carte et imprimez les éléments while (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }> |
>
>Sortir
Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>
Complexité de la méthode ci-dessus :
Complexité temporelle : O(n) où n est la taille de la carte.
Espace auxiliaire : Sur)
Exemple 2 : fonction taille()
C++
types de données Java
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>carte; // Insère quelques valeurs dans la carte map['one'] = 1; map['deux'] = 2; map['trois'] = 3; // Imprimer la taille de la carte<< 'Size of map: ' << map.size() << endl; return 0; }> |
>
>Sortir
Size of map: 3>
Complexité de la méthode ci-dessus :
Complexité temporelle : O(1).
Exemple 3 : implémentation de Map
RPC
// CPP Program to demonstrate the implementation in Map> // divyansh mishra -->divyanshmishra101010> #include> #include> #include> using> namespace> std;> int> main()> {> >// empty map container> >map<>int>,>int>>gquiz1;> >// insert elements in random order> >gquiz1.insert(pair<>int>,>int>>(1, 40));> >gquiz1.insert(pair<>int>,>int>>(2, 30));> >gquiz1.insert(pair<>int>,>int>>(3, 60));> >gquiz1.insert(pair<>int>,>int>>(4, 20));> >gquiz1.insert(pair<>int>,>int>>(5, 50));> >gquiz1.insert(pair<>int>,>int>>(6, 50));> >// another way of inserting a value in a map> >gquiz1[7] = 10;> >// printing map gquiz1> >map<>int>,>int>>::itérateur itr;> >cout <<>'
The map gquiz1 is :
'>;> >cout <<>' KEY ELEMENT
'>;> >for> (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) {> >cout <<>' '> ' ' << '
'; } cout << endl; // assigning the elements from gquiz1 to gquiz2 map |
>
>Sortir
The map gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 The map gquiz2 after assign from gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 gquiz2 after remov...>
Complexité de la méthode ci-dessus :
Complexité temporelle : O(n log(n)) puisque n est la taille de la carte
Espace auxiliaire : Sur)
Exemple 4 : Implémentation d'une carte d'entiers
C++
// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>carte; // Insère quelques valeurs dans la carte map['one'] = 1; map['deux'] = 2; map['trois'] = 3; // Imprimer les valeurs dans la map cout<< 'Key: one, Value: ' << map['one'] << endl; cout << 'Key: two, Value: ' << map['two'] << endl; cout << 'Key: three, Value: ' << map['three'] << endl; // Check if a key is in the map if (map.count('four')>0) { cout<< 'Key 'four' is in the map' << endl; } else { cout << 'Key 'four' is not in the map' << endl; } return 0; }> |
>
>Sortir
Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>
Liste de toutes les fonctions de std :: map
Le tableau suivant contient toutes les fonctions définies dans la classe std::map.
| Fonction | Définition |
|---|---|
| map::insérer() | Insérer des éléments avec une clé particulière dans le conteneur de carte -> O (log n) |
| carte : count() | Renvoie le nombre de correspondances avec l'élément avec la valeur-clé « g » dans la carte. -> O (log n) |
| carte égal_range() | Renvoie un itérateur de paires. La paire fait référence aux limites d'une plage qui inclut tous les éléments du conteneur qui ont une clé équivalente à k. |
| effacement de la carte() | Utilisé pour effacer des éléments du conteneur -> O (log n) |
| carte rend() | Renvoie un itérateur inverse pointant vers l'élément théorique juste avant la première paire clé-valeur de la carte (qui est considérée comme son extrémité inverse). |
| carte rbegin()
| Renvoie un itérateur inverse qui pointe vers le dernier élément de la carte. |
| recherche de carte() | Renvoie un itérateur à l'élément avec la valeur-clé « g » dans la carte s'il est trouvé, sinon renvoie l'itérateur pour terminer. |
| mapper crbegin() et crend() | crbegin() renvoie un itérateur inverse constant faisant référence au dernier élément du conteneur de carte. crend() renvoie un itérateur inverse constant pointant vers l'élément théorique avant le premier élément de la carte. |
| mapper cbegin() et cend() | cbegin() renvoie un itérateur constant faisant référence au premier élément du conteneur de carte. cend() renvoie un itérateur constant pointant vers l'élément théorique qui suit le dernier élément de la multimap. |
| mapper la place() | Insère la clé et son élément dans le conteneur de carte. |
| carte max_size() | Renvoie le nombre maximum d'éléments qu'un conteneur de carte peut contenir -> O(1) |
| carte upper_bound() | Renvoie un itérateur vers le premier élément qui est équivalent à la valeur mappée avec la valeur-clé « g » ou qui ira certainement après l'élément avec la valeur-clé « g » dans la carte |
| opérateur de carte = | Attribue le contenu d'un conteneur à un autre conteneur, en remplaçant son contenu actuel. |
| carte lower_bound() | Renvoie un itérateur vers le premier élément qui est équivalent à la valeur mappée avec la valeur-clé « g » ou qui ne ira certainement pas avant l'élément avec la valeur-clé « g » dans la carte -> O (log n) |
| carte emplace_hint() | Insère la clé et son élément dans le conteneur de carte avec un indice donné. |
| carte value_comp() | Renvoie l'objet qui détermine la façon dont les éléments de la carte sont ordonnés ('<' par défaut). |
| mapper key_comp() | Renvoie l'objet qui détermine la façon dont les éléments de la carte sont ordonnés ('<' par défaut). |
| taille de la carte() | Renvoie le nombre d'éléments dans la carte. |
| carte :: vide () | Renvoie si la carte est vide |
| map::begin() et end() | Begin() renvoie un itérateur vers le premier élément de la carte. end() renvoie un itérateur vers l'élément théorique qui suit le dernier élément de la carte |
| map::opérateur[] | Cet opérateur permet de référencer l'élément présent à la position donnée à l'intérieur de l'opérateur. |
| carte :: clear () | Supprime tous les éléments de la carte. |
| map::at() et map::swap() | La fonction at() est utilisée pour renvoyer la référence à l'élément associé à la clé k. La fonction swap() est utilisée pour échanger le contenu de deux cartes mais les cartes doivent être du même type, bien que les tailles puissent différer. |