C++

Come iterare sulla mappa in C++

Come iterare sulla mappa in C++
In questo breve tutorial, vedremo come eseguire l'iterazione in map in C++.

Esistono diversi modi per scorrere la mappa in C++. Con le versioni più recenti di C++, ci sono modi più avanzati per scorrere la mappa in C++.

Esaminiamoli uno per uno.

Utilizzo del ciclo for con stp::map

Abbiamo creato una mappa denominata paeseCapitalMap e ha inserito coppie chiave-valore su di esso.


#includere
#includere
#includere
#includere
#includere
usando lo spazio dei nomi std;
int main()
// Inizializza una mappa
mappa>"India", "Delhi"));
paeseCapitalMap.inserire (coppia)("Nepal", "Kathmandu"));
paeseCapitalMap.inserire (coppia)("Cina", "Pechino"));
paeseCapitalMap.inserire (coppia)("Francia", "Parigi"));
// Itera usando l'iteratore nel ciclo for
for (auto itr = countryCapitalMap.inizio(); itr != countryCapitalMap.fine(); itr++)

std::cout << itr->prima // Chiave di accesso
<< ':'
<< itr->secondo // Valore di accesso
<< std::endl;

restituisce 0;


Produzione:

Cina: Pechino
Francia:Parigi
India: Delhi
Nepal: Kathmandu

Come puoi vedere, abbiamo stampato country:capital(key:value) usando for loop.

Se noti, abbiamo usato auto identificatore di tipo per l'iteratore della mappa a causa della leggibilità. Puoi usare carta geografica::iteratore anche esplicitamente.
Nota: Se vedi l'output, è ordinato per chiavi in ​​ordine crescente. Questo perché std::map è un contenitore associativo ordinato con Comparator fornito (versione C++ 11 in poi). Poiché non abbiamo fornito alcun comparatore, quindi C++ ha utilizzato il comparatore predefinito per string.

Utilizzo del ciclo while con stp::map

Possiamo anche usare un ciclo while invece del ciclo for.


#includere
#includere
#includere
#includere >
usando lo spazio dei nomi std;
int main()
// Inizializza una mappa
carta geografica countryCapitalMap;
// Inserisce diversi elementi nella mappa
paeseCapitalMap.inserire (coppia)("India", "Delhi"));
paeseCapitalMap.inserire (coppia)("Nepal", "Kathmandu"));
paeseCapitalMap.inserire (coppia)("Cina", "Pechino"));
paeseCapitalMap.inserire (coppia)("Francia", "Parigi"));
// Crea un iteratore per la mappa e inizializza con begin
auto itr=countryCapitalMap.inizio();
// Itera usando l'iteratore nel ciclo while
mentre (itr!=paeseCapitalMap.fine())

std::cout << itr->prima // Chiave di accesso
<< ':'
<< itr->secondo // Valore di accesso
<< std::endl;
itr++;

restituisce 0;


Produzione:

Cina: Pechino
Francia:Parigi
India: Delhi
Nepal: Kathmandu

Utilizzo di Range based for loop (versione C++ 11 in poi)

Se stai usando la versione C++ 11, questo è il modo più elegante per scorrere la mappa in C++. Puoi evitare i tradizionali loop cubersome e usare invece questo.


#includere
#includere
#includere
usando lo spazio dei nomi std;
int main()
// Inizializza una mappa
carta geografica countryCapitalMap;
// Inserisce diversi elementi nella mappa
paeseCapitalMap.inserire (coppia)("India", "Delhi"));
paeseCapitalMap.inserire (coppia)("Nepal", "Kathmandu"));
paeseCapitalMap.inserire (coppia)("Cina", "Pechino"));
paeseCapitalMap.inserire (coppia)("Francia", "Parigi"));
// Itera usando l'iteratore nel ciclo for
for (const auto &ele : countryCapitalMap)
cout <
restituisce 0;


Produzione:
Cina: Pechino
Francia:Parigi
India: Delhi
Nepal: Kathmandu

Utilizzo del ciclo for basato su intervallo con coppie chiave-valore (dalla versione C++17 in poi)

Questa versione è supportata da c++17 in poi e fornisce un modo più flessibile per scorrere la mappa. Puoi accedere esplicitamente alla coppia chiave-valore nella mappa che fornisce una soluzione ancora più leggibile.


#includere
#includere
#includere
usando lo spazio dei nomi std;
int main()
// Inizializza una mappa
carta geografica countryCapitalMap;
// Inserisce diversi elementi nella mappa
paeseCapitalMap.inserire (coppia)("India", "Delhi"));
paeseCapitalMap.inserire (coppia)("Nepal", "Kathmandu"));
paeseCapitalMap.inserire (coppia)("Cina", "Pechino"));
paeseCapitalMap.inserire (coppia)("Francia", "Parigi"));
// Itera usando l'iteratore nel ciclo for
for (const auto& [chiave, valore] : countryCapitalMap)
cout << key << ":" << value << "\n";

restituisce 0;


Produzione:
Cina: Pechino
Francia:Parigi
India: Delhi
Nepal: Kathmandu

Questo è tutto su come scorrere la mappa in C++. Codifica felice!

Vulkan per utenti Linux
Con ogni nuova generazione di schede grafiche, vediamo gli sviluppatori di giochi spingere i limiti della fedeltà grafica e avvicinarsi di un passo al...
OpenTTD vs Simutrans
Creare la tua simulazione di trasporto può essere divertente, rilassante ed estremamente allettante. Ecco perché devi assicurarti di provare quanti pi...
Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...