Heim > Backend-Entwicklung > C++ > C++-Programminitialisierungswörterbuch

C++-Programminitialisierungswörterbuch

王林
Freigeben: 2023-09-09 19:01:03
nach vorne
1093 Leute haben es durchsucht

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.

Grammatik

#include <map>
map <data_type 1, data_type 2> myMap;
</map>
Nach dem Login kopieren

Nehmen wir ein Beispiel und sehen, wie das geht −

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

1 Hello
2 World
Nach dem Login kopieren

In C++ können Maps auf unterschiedliche Weise initialisiert werden. Der Algorithmus ist sehr einfach.

Algorithmus

  • Erstellen Sie Kartenobjekte.

  • Weisen Sie einem Objekt einen Wert zu, wenn Sie es deklarieren.

Initialisieren Sie die Karte mithilfe einer Initialisierungsliste

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.

Grammatik

#include <map>
map <data_type 1, data_type 2> myMap = {{key1, value1}, {key2, value2}};
Nach dem Login kopieren

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

1 One
2 Two
3 Three
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Initialisieren Sie die Karte mit dem Zuweisungsoperator

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.

Grammatik

#include <map>
map <data_type 1, data_type 2> myMap;
myMap[key1] = value1;
</map>
Nach dem Login kopieren

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

1 One
2 Two
3 Three
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Eine Karte von einer anderen Karte initialisieren

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.

Grammatik

#include <map>
map <data_type 1, data_type 2> myMap1(myMap2);
Nach dem Login kopieren

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

1 One
2 Two
3 Three
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Fazit

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage