Utilizzando per loop con std :: mappa
Abbiamo creato una mappa denominata CountryCapitalmap e ha inserito coppie di valore chiave. Quindi utilizziamo un iteratore per fare un ciclo per loop attraverso i membri della struttura dei dati della mappa.
#includereProduzione:
#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
// Inizializza una mappa
carta geograficaCountryCapitalmap;
CountryCapitalmap.Inserisci (coppia("Nepal", "Kathmandu"));
CountryCapitalmap.Inserisci (coppia("Cina", "Pechino"));
CountryCapitalmap.Inserisci (coppia("Francia", "Paris"));
// iterazione usando iterator in for loop
per (auto itr = countrycapitalmap.inizio();
itr != CountryCapitalmap.FINE(); itr ++)
std :: cout << itr->First // Chiave di accesso
<< ':'
<< itr->Secondo // valore di accesso
<< std::endl;
restituzione 0;
Come puoi vedere, abbiamo stampato Paese: Capitale (chiave: valore) Utilizzando per loop.
Se noti, abbiamo usato auto Digita Specificatore per Map Iterator a causa della leggibilità. Puoi usare Mappa :: iteratore esplicitamente anche.
Nota: Se vedi l'output, è ordinato per chiavi in ordine crescente. Questo perché STD :: Map è un contenitore associativo ordinato con comparatore fornito (versione C ++ 11 in poi). Dal momento che non abbiamo fornito alcun comparatore, quindi C ++ ha utilizzato il comparatore predefinito per la stringa.
Usando While Loop con STP :: Map
Possiamo anche usare un ciclo while anziché per loop.
#includere
#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
// Inizializza una mappa
carta geograficaCountryCapitalmap;
// Inserisci diversi elementi nella mappa
CountryCapitalmap.Inserisci (coppia("India", "Delhi"));
CountryCapitalmap.Inserisci (coppia("Nepal", "Kathmandu"));
CountryCapitalmap.Inserisci (coppia("Cina", "Pechino"));
CountryCapitalmap.Inserisci (coppia("Francia", "Paris"));
// crea un iteratore per la mappa e inizializza con inizio
auto itr = countrycapitalmap.inizio();
// iterare usando iteratore nel ciclo
mentre (ITR!= CountryCapitalmap.FINE())
std :: cout << itr->First // Chiave di accesso
<< ':'
<< itr->Secondo // valore di accesso
<< std::endl;
ITR ++;
restituzione 0;
Produzione:
Cina: PechinoUtilizzo dell'intervallo basato per loop (versione C ++ 11 in poi)
Se stai usando la versione C ++ 11, questo è il modo più elegante per iterare la mappa in C++. Puoi evitare i loop tradizionali a cube e usarlo invece.
#includereProduzione:
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
// Inizializza una mappa
carta geograficaCountryCapitalmap;
// Inserisci diversi elementi nella mappa
CountryCapitalmap.Inserisci (coppia("India", "Delhi"));
CountryCapitalmap.Inserisci (coppia("Nepal", "Kathmandu"));
CountryCapitalmap.Inserisci (coppia("Cina", "Pechino"));
CountryCapitalmap.Inserisci (coppia("Francia", "Paris"));
// iterazione usando iterator in for loop
per (const auto & ele: countrycapitalmap)
cout <
restituzione 0;
Utilizzo di gamma basata per loop con coppie di valori chiave (versione C ++ 17 in poi)
Questa versione è supportata da C ++ 17 in poi e fornisce un modo più flessibile per ripetere la mappa. È possibile accedere esplicitamente alla coppia di valori chiave in mappa che fornisce una soluzione ancora più leggibile.
#includereProduzione:
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
// Inizializza una mappa
carta geograficaCountryCapitalmap;
// Inserisci diversi elementi nella mappa
CountryCapitalmap.Inserisci (coppia("India", "Delhi"));
CountryCapitalmap.Inserisci (coppia("Nepal", "Kathmandu"));
CountryCapitalmap.Inserisci (coppia("Cina", "Pechino"));
CountryCapitalmap.Inserisci (coppia("Francia", "Paris"));
// iterazione usando iterator in for loop
per (const auto & [key, value]: countrycapitalmap)
cout << key << ":" << value << "\n";
restituzione 0;
Questo è tutto su come iterare sulla mappa in c++.