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!

Microsoft Sculpt Touch Wireless-Maus Bewertung
Ich habe vor kurzem gelesen, dass Microsoft Sculpt Touch kabellose Maus und beschloss, sie zu kaufen. Nachdem ich es eine Weile benutzt hatte, beschlo...
AppyMouse On-Screen Trackpad und Mauszeiger für Windows Tablets
Tablet-Benutzer vermissen oft den Mauszeiger, insbesondere wenn sie die Laptops gewohnt sind. Die Touchscreen-Smartphones und -Tablets bieten viele Vo...
Mittlere Maustaste funktioniert nicht unter Windows 10
Das mittlere Maustaste hilft Ihnen beim Scrollen durch lange Webseiten und Bildschirme mit vielen Daten. Wenn das aufhört, werden Sie am Ende die Tast...