Maison > développement back-end > C++ > le corps du texte

Dictionnaire d'initialisation du programme C++

王林
Libérer: 2023-09-09 19:01:03
avant
1017 Les gens l'ont consulté

Dictionnaire dinitialisation du programme C++

C++ diffère de Python en termes de dictionnaire du même nom, mais il a la même structure de données avec des fonctionnalités similaires. C++ prend en charge le mappage, qui peut être utilisé dans la classe STL std::map. L'objet map contient une paire de valeurs dans chaque entrée, l'une est la valeur clé et l'autre est la valeur map. Les valeurs clés sont utilisées pour rechercher et identifier de manière unique les entrées dans la carte. Bien que les valeurs mappées ne soient pas nécessairement uniques, les valeurs clés doivent toujours être uniques dans la carte. Voyons comment utiliser le mappage.

Tout d’abord, voyons comment définir une structure de données mappée en C++.

Grammaire

#include <map>
map <data_type 1, data_type 2> myMap;
</map>
Copier après la connexion

Prenons un exemple et voyons comment procéder−

Exemple

#include <iostream>
#include <map>

using namespace std;

int main() {
   //initialising the map
   map <int, string> myMap;

   //inserting two key-value pairs
   myMap.insert({1, "Hello"});
   myMap.insert({2, "World"});

   //displaying the key-value pairs
   for (auto itr = myMap.begin(); itr != myMap.end(); ++itr) {
      cout << itr->first << " " << itr->second << endl;
   }

   return 0;
}
Copier après la connexion

Sortie

1 Hello
2 World
Copier après la connexion

En C++, Maps peut être initialisé de différentes manières. L'algorithme est très simple.

Algorithme

  • Créez des objets cartographiques.

  • Attribuez une valeur à un objet lors de sa déclaration.

Initialisez la carte à l'aide d'une liste d'initialisation

L'initialisation d'une carte à l'aide d'une liste d'initialisation revient à initialiser un tableau en C++. Il suffit d'attribuer des paires clé-valeur lors de la déclaration du mappage, entre accolades, au format {clé, valeur}. La syntaxe est la suivante.

Grammaire

#include <map>
map <data_type 1, data_type 2> myMap = {{key1, value1}, {key2, value2}};
Copier après la connexion

Exemple

#include <iostream>
#include <map>

using namespace std;

int main() {
   //initialising the map
   map <int, string> myMap = {{1, "One"}, {2, "Two"}, {3, "Three"}};

   //displaying the key-value pairs
   for (auto itr = myMap.begin(); itr != myMap.end(); ++itr) {
      cout << itr->first << " " << itr->second << '\n';
   }

   return 0;
}
Copier après la connexion

Sortie

1 One
2 Two
3 Three
Copier après la connexion
Copier après la connexion
Copier après la connexion

Initialisez la carte à l'aide de l'opérateur d'affectation

Cela revient à attribuer une valeur à un index spécifique dans un tableau. Nous n'avons pas mentionné l'index, mais avons mis les valeurs clés dans l'indice de la carte, comme dans un tableau.

Grammaire

#include <map>
map <data_type 1, data_type 2> myMap;
myMap[key1] = value1;
</map>
Copier après la connexion

Exemple

#include <iostream>
#include <map>

using namespace std;

int main() {
   //declaring the map
   map <int, string> myMap;
   myMap[1] = "One";
   myMap[2] = "Two";
   myMap[3] = "Three";

   //displaying the key-value pairs
   for (auto itr = myMap.begin(); itr != myMap.end(); ++itr) {
      cout << itr->first << " " << itr->second << '\n';
   }

   return 0;
}
Copier après la connexion

Sortie

1 One
2 Two
3 Three
Copier après la connexion
Copier après la connexion
Copier après la connexion

Initialiser une carte à partir d'une autre carte

Il peut être nécessaire de copier une carte dans une autre carte, afin de pouvoir initialiser une carte à partir d'une autre carte. Nous profitons du constructeur de copie de la classe map en passant l'objet map au constructeur de copie de la classe au moment de la déclaration.

Grammaire

#include <map>
map <data_type 1, data_type 2> myMap1(myMap2);
Copier après la connexion

Exemple

#include <iostream>
#include <map>

using namespace std;

int main() {
   //declaring the map
   map <int, string> myMap;
   myMap[1] = "One";
   myMap[2] = "Two";
   myMap[3] = "Three";

   //copying using copy constructor
   map <int, string> myMap2(myMap);

   //displaying the key-value pairs
   for (auto itr = myMap2.begin(); itr != myMap2.end(); ++itr) {
      cout << itr->first << " " << itr->second << '\n';
   }

   return 0;
}
Copier après la connexion

Sortie

1 One
2 Two
3 Three
Copier après la connexion
Copier après la connexion
Copier après la connexion

Conclusion

Map en C++ est une collection ordonnée, c'est-à-dire que les éléments de la Map sont triés par valeur clé. Cela le rend plus lent par rapport à d'autres structures de données similaires, telles qu'une carte non ordonnée où les paires clé-valeur ne sont pas triées. Toutes les opérations sur la carte ont une complexité logarithmique et sont implémentées en mémoire sous la forme d'un arbre rouge-noir. Cependant, en pratique, le mappage est très utile car il offre une grande flexibilité dans le stockage des données sous forme de clé-valeur. Nous avons discuté de toutes les principales façons d'initialiser une carte ; bien qu'il existe de nombreuses façons d'initialiser, celles-ci sont les plus intuitives.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal