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!

Installieren Sie das ZFS-Dateisystem auf Ubuntu 18.04 LTS
In diesem Artikel zeige ich Ihnen, wie Sie das ZFS-Dateisystem auf Ubuntu 18 installieren und einrichten.04 LTS. Lass uns anfangen. ZFS-Dateisystem in...
Ubuntu 18 installieren.04 LTS in einer VirtualBox
Die neueste Long Term Support (LTS)-Version von Ubuntu ist jetzt erhältlich. Integration der neuesten Innovationen von Containerisierungstechnologien ...
Ubuntu 18.04, Bionic Beaver, ist offiziell veröffentlicht
Es ist Zeit für die offizielle Veröffentlichung von Ubuntu 18.04, die im 4. Monat 2018 gemäß dem Ubuntu-Nummerierungsschema versprochen wurde. Es wurd...