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!

Emulieren Sie Mausklicks, indem Sie den Mauszeiger mit der klicklosen Maus in Windows 10 bewegen
Die Verwendung einer Maus oder Tastatur in der falschen Haltung bei übermäßiger Nutzung kann zu vielen gesundheitlichen Problemen führen, einschließli...
Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...
Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...