Heim >Backend-Entwicklung >C++ >C++-Programminitialisierungswörterbuch
C++ unterscheidet sich von Python durch das gleichnamige Wörterbuch, hat aber die gleiche Datenstruktur mit ähnlicher Funktionalität. C++ unterstützt Mapping, das in der STL-Klasse std::map verwendet werden kann. Das Kartenobjekt enthält in jedem Eintrag ein Wertepaar, einer ist der Schlüsselwert und der andere ist der Kartenwert. Mithilfe von Schlüsselwerten werden Einträge in der Karte gesucht und eindeutig identifiziert. Während zugeordnete Werte nicht unbedingt eindeutig sind, müssen Schlüsselwerte in der Karte immer eindeutig sein. Werfen wir einen Blick auf die Verwendung von Mapping.
Sehen wir uns zunächst an, wie man eine zugeordnete Datenstruktur in C++ definiert.
#include <map> map <data_type 1, data_type 2> myMap; </map>
Nehmen wir ein Beispiel und sehen, wie das geht −
#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
In C++ können Maps auf unterschiedliche Weise initialisiert werden. Der Algorithmus ist sehr einfach.
Erstellen Sie Kartenobjekte.
Weisen Sie einem Objekt einen Wert zu, wenn Sie es deklarieren.
Das Initialisieren einer Karte mithilfe einer Initialisierungsliste ist dasselbe wie das Initialisieren eines Arrays in C++. Wir müssen bei der Deklaration der Zuordnung lediglich Schlüssel-Wert-Paare in geschweiften Klammern im Format {Schlüssel, Wert} zuweisen. Die Syntax ist wie folgt.
#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
Dies ähnelt dem Zuweisen eines Werts zu einem bestimmten Index in einem Array. Wir haben den Index nicht erwähnt, sondern die Schlüsselwerte wie in einem Array in den Kartenindex eingefügt.
#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
Es kann erforderlich sein, eine Karte in eine andere Karte zu kopieren, damit wir eine Karte von einer anderen Karte initialisieren können. Wir nutzen den Kopierkonstruktor der Kartenklasse, indem wir das Kartenobjekt zum Zeitpunkt der Deklaration an den Kopierkonstruktor der Karte übergeben.
#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 in C++ ist eine geordnete Sammlung, das heißt, die Elemente in der Map sind nach Schlüsselwert sortiert. Dies macht es langsamer im Vergleich zu anderen ähnlichen Datenstrukturen, beispielsweise einer ungeordneten Karte, bei der Schlüssel-Wert-Paare nicht sortiert sind. Alle Operationen in der Karte haben eine logarithmische Komplexität und werden im Speicher als rot-schwarzer Baum implementiert. In der Praxis ist die Zuordnung jedoch sehr nützlich, da sie eine große Flexibilität bei der Speicherung von Daten auf Schlüsselwertbasis bietet. Wir haben alle wichtigen Möglichkeiten zur Initialisierung einer Karte besprochen. Es gibt zwar viele Möglichkeiten zur Initialisierung, diese sind jedoch die intuitivsten.
Das obige ist der detaillierte Inhalt vonC++-Programminitialisierungswörterbuch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!