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

C++-Programminitialisierungswörterbuch

王林
王林nach vorne
2023-09-09 19:01:03971Durchsuche

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>

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;
}

Ausgabe

1 Hello
2 World

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}};

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;
}

Ausgabe

1 One
2 Two
3 Three

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>

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;
}

Ausgabe

1 One
2 Two
3 Three

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);

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;
}

Ausgabe

1 One
2 Two
3 Three

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen