C++

So iterieren Sie über die Karte in C++

So iterieren Sie über die Karte in C++
In diesem kurzen Tutorial werden wir sehen, wie man in der Karte in C . iteriert++.

Es gibt mehrere Möglichkeiten, die Karte in C . zu durchlaufen++. Mit neueren Versionen von C++ gibt es erweiterte Möglichkeiten, die Karte in C . zu durchlaufen++.

Lass uns jeden einzeln durchgehen.

Verwenden der for-Schleife mit stp::map

Wir haben eine Karte namens . erstellt LandHauptstadtKarte und fügte Schlüssel-Wert-Paare hinzu.


#einschließen
#einschließen
#einschließen
#einschließen
#einschließen
Verwenden des Namensraums std;
int main()
// Eine Karte initialisieren
Karte>"Indien", "Delhi"));
LandHauptstadtKarte.einfügen (Paar("Nepal", "Kathmandu"));
LandHauptstadtKarte.einfügen (Paar("China", "Peking"));
LandHauptstadtKarte.einfügen (Paar("Frankreich Paris"));
// Iteriere mit dem Iterator in der for-Schleife
for (auto itr = countryCapitalMap.Start(); itr != countryCapitalMap.Ende(); itr++)

std::cout << itr->zuerst // Zugriffsschlüssel
<< ':'
<< itr->zweiter // Zugriffswert
<< std::endl;

0 zurückgeben;


Ausgabe:

China: Peking
Frankreich Paris
Indien:Delhi
Nepal: Kathmandu

Wie Sie sehen können, haben wir country:capital(key:value) mit der for-Schleife gedruckt.

Wenn Sie bemerken, haben wir verwendet Auto Typbezeichner für Map-Iterator aus Gründen der Lesbarkeit. Sie können verwenden Karte::Iterator auch explizit.
Hinweis: Wenn Sie die Ausgabe sehen, ist sie nach Schlüsseln in aufsteigender Reihenfolge sortiert. Dies liegt daran, dass std::map ein sortierter assoziativer Container mit mitgeliefertem Comparator (ab Version C++11) ist. Da wir keinen Komparator bereitgestellt haben, hat C++ den Standardkomparator für string verwendet.

Verwenden der while-Schleife mit stp::map

Wir können auch eine while-Schleife anstelle einer for-Schleife verwenden.


#einschließen
#einschließen
#einschließen
#einschließen >
Verwenden des Namensraums std;
int main()
// Eine Karte initialisieren
Karte countryCapitalMap;
// Füge verschiedene Elemente in die Karte ein
LandHauptstadtKarte.einfügen (Paar("Indien", "Delhi"));
LandHauptstadtKarte.einfügen (Paar("Nepal", "Kathmandu"));
LandHauptstadtKarte.einfügen (Paar("China", "Peking"));
LandHauptstadtKarte.einfügen (Paar("Frankreich Paris"));
// Erstellen Sie einen Iterator für die Karte und initialisieren Sie mit begin
auto itr=countryCapitalMap.Start();
// Iteriere mit dem Iterator in der while-Schleife
während (itr!=LandHauptstadtKarte.Ende())

std::cout << itr->zuerst // Zugriffsschlüssel
<< ':'
<< itr->zweiter // Zugriffswert
<< std::endl;
itr++;

0 zurückgeben;


Ausgabe:

China: Peking
Frankreich Paris
Indien:Delhi
Nepal: Kathmandu

Verwenden einer bereichsbasierten for-Schleife (ab C++11-Version)

Wenn Sie die C++11-Version verwenden, ist dies der eleganteste Weg, um über die Karte in C . zu iterieren++. Sie können traditionelle würfelförmige Schleifen vermeiden und stattdessen diese verwenden.


#einschließen
#einschließen
#einschließen
Verwenden des Namensraums std;
int main()
// Eine Karte initialisieren
Karte countryCapitalMap;
// Füge verschiedene Elemente in die Karte ein
LandHauptstadtKarte.einfügen (Paar("Indien", "Delhi"));
LandHauptstadtKarte.einfügen (Paar("Nepal", "Kathmandu"));
LandHauptstadtKarte.einfügen (Paar("China", "Peking"));
LandHauptstadtKarte.einfügen (Paar("Frankreich Paris"));
// Iteriere mit dem Iterator in der for-Schleife
for (const auto &ele : countryCapitalMap)
cout <
0 zurückgeben;


Ausgabe:
China: Peking
Frankreich Paris
Indien:Delhi
Nepal: Kathmandu

Verwenden einer bereichsbasierten for-Schleife mit Schlüssel/Wert-Paaren (ab Version C++17)

Diese Version wird ab c++17 unterstützt und bietet eine flexiblere Möglichkeit zum Iterieren über die Karte. Sie können explizit auf das Schlüssel-Wert-Paar in der Karte zugreifen, was eine noch besser lesbare Lösung bietet.


#einschließen
#einschließen
#einschließen
Verwenden von Namespace-Std;
int main()
// Eine Karte initialisieren
Karte countryCapitalMap;
// Füge verschiedene Elemente in die Karte ein
LandHauptstadtKarte.einfügen (Paar("Indien", "Delhi"));
LandHauptstadtKarte.einfügen (Paar("Nepal", "Kathmandu"));
LandHauptstadtKarte.einfügen (Paar("China", "Peking"));
LandHauptstadtKarte.einfügen (Paar("Frankreich Paris"));
// Iteriere mit dem Iterator in der for-Schleife
for (const auto& [Schlüssel, Wert] : countryCapitalMap)
cout << key << ":" << value << "\n";

0 zurückgeben;


Ausgabe:
China: Peking
Frankreich Paris
Indien:Delhi
Nepal: Kathmandu

Das ist alles darüber, wie man in C . über die Karte iteriert++. Viel Spaß beim Codieren!

So verwenden Sie AutoKey zur Automatisierung von Linux-Spielen
AutoKey ist ein Desktop-Automatisierungsdienstprogramm für Linux und X11, programmiert in Python 3, GTK und Qt. Mithilfe der Skript- und MACRO-Funktio...
So zeigen Sie den FPS-Zähler in Linux-Spielen an
Linux-Gaming bekam einen großen Schub, als Valve 2012 die Linux-Unterstützung für den Steam-Client und seine Spiele ankündigte. Seitdem haben viele AA...
Herunterladen und Spielen von Sid Meier's Civilization VI unter Linux and
Einführung in das Spiel Civilization 6 ist eine moderne Version des klassischen Konzepts, das in der Reihe der Age of Empires-Spiele eingeführt wurde....