Maison > Article > développement back-end > Dictionnaire d'initialisation 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++.
#include <map> map <data_type 1, data_type 2> myMap; </map>
Prenons un exemple et voyons comment procéder−
#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; }
1 Hello 2 World
En C++, Maps peut être initialisé de différentes manières. L'algorithme est très simple.
Créez des objets cartographiques.
Attribuez une valeur à un objet lors de sa déclaration.
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.
#include <map> map <data_type 1, data_type 2> myMap = {{key1, value1}, {key2, value2}};
#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; }
1 One 2 Two 3 Three
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.
#include <map> map <data_type 1, data_type 2> myMap; myMap[key1] = value1; </map>
#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; }
1 One 2 Two 3 Three
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.
#include <map> map <data_type 1, data_type 2> myMap1(myMap2);
#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; }
1 One 2 Two 3 Three
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!