Verwenden Sie für Schleife mit std :: map
Wir haben eine Karte namens erstellt CountryCapitalMap und ein eingefügte Schlüsselwertpaare in sie eingefügt. Anschließend verwenden wir einen Iterator, um durch die Mitglieder der Kartendatenstruktur eine für Schleife durchzuführen.
#enthaltenAusgang:
#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
// Initialisieren Sie eine Karte
KarteCountryCapitalMap;
CountryCapitalMap.Einfügen (Paar("Nepal", "Kathmandu");
CountryCapitalMap.Einfügen (Paar("China", "Peking");
CountryCapitalMap.Einfügen (Paar("Frankreich Paris"));
// mit Iterator für Schleife iterieren
für (auto itr = landescapitalmap.Start();
itr != CountryCapitalMap.Ende(); itr ++)
std :: Cout << itr->Erstens // Zugriffsschlüssel zugreifen
<< ':'
<< itr->Zweiter // Zugriffswert
<< std::endl;
Rückkehr 0;
Wie Sie sehen können, haben wir Land gedruckt: Kapital (Schlüssel: Wert) für Schleife verwenden.
Wenn Sie es bemerken, haben wir verwendet Auto Geben Sie den Spezifizierer für Karten -Iterator aufgrund der Lesbarkeit ein. Sie können verwenden Karte :: Iterator auch explizit.
Notiz: Wenn Sie die Ausgabe sehen, wird er in aufsteigender Reihenfolge nach Schlüssel sortiert. Dies liegt daran, dass STD :: MAP ein sortierter assoziativer Container mit dem mitgelieferten Komparator ist (Version C ++ 11). Da wir keinen Vergleicher bereitgestellt haben, hat C ++ den Standardvergleich für die String verwendet.
Verwenden Sie während der Schleife mit STP :: Map
Wir können auch eine Weile Schleife anstelle von für die Schleife verwenden.
#enthalten
#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
// Initialisieren Sie eine Karte
KarteCountryCapitalMap;
// verschiedene Elemente in die Karte einfügen
CountryCapitalMap.Einfügen (Paar("Indien", "Delhi");
CountryCapitalMap.Einfügen (Paar("Nepal", "Kathmandu");
CountryCapitalMap.Einfügen (Paar("China", "Peking");
CountryCapitalMap.Einfügen (Paar("Frankreich Paris"));
// Erstellen Sie einen Iterator für die Karte und initialisieren Sie mit Beginn
Auto iTR = CountryCapitalMap.Start();
// Itererieren Sie die Iteratorin während der Schleife
während (ITR!= CountryCapitalMap.Ende())
std :: Cout << itr->Erstens // Zugriffsschlüssel zugreifen
<< ':'
<< itr->Zweiter // Zugriffswert
<< std::endl;
itr ++;
Rückkehr 0;
Ausgang:
China: PekingVerwenden von Bereichsbasis für Schleife (C ++ 11 Version)
Wenn Sie eine C ++ 11 -Version verwenden, ist dies die eleganteste Möglichkeit, um die Karte in C zu iterieren++. Sie können herkömmliche Cubersome -Schleifen vermeiden und dies stattdessen verwenden.
#enthaltenAusgang:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
// Initialisieren Sie eine Karte
KarteCountryCapitalMap;
// verschiedene Elemente in die Karte einfügen
CountryCapitalMap.Einfügen (Paar("Indien", "Delhi");
CountryCapitalMap.Einfügen (Paar("Nepal", "Kathmandu");
CountryCapitalMap.Einfügen (Paar("China", "Peking");
CountryCapitalMap.Einfügen (Paar("Frankreich Paris"));
// mit Iterator für Schleife iterieren
für (const Auto & ele: CountryCapitalMap)
Cout <
Rückkehr 0;
Verwenden von Bereichsbasis für Schleife mit Schlüsselwertern (C ++ 17 Version)
Diese Version wird ab C ++ 17 unterstützt und bietet eine flexiblere Möglichkeit, über der Karte zu iterieren. Sie können explizit auf das Tastenwertepaar in der Karte zugreifen, die noch mehr lesbare Lösung bietet.
#enthaltenAusgang:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
// Initialisieren Sie eine Karte
KarteCountryCapitalMap;
// verschiedene Elemente in die Karte einfügen
CountryCapitalMap.Einfügen (Paar("Indien", "Delhi");
CountryCapitalMap.Einfügen (Paar("Nepal", "Kathmandu");
CountryCapitalMap.Einfügen (Paar("China", "Peking");
CountryCapitalMap.Einfügen (Paar("Frankreich Paris"));
// mit Iterator für Schleife iterieren
für (const Auto & [Schlüssel, Wert]: CountryCapitalMap)
Cout << key << ":" << value << "\n";
Rückkehr 0;
Hier geht es darum, über die Karte in C zu iterieren++.