Utilisation pour Loop avec STD :: Map
Nous avons créé une carte nommée countrycapitalmap et les paires de valeurs clés insérées. Nous utilisons ensuite un itérateur pour faire une boucle pour les membres de la structure des données de la carte.
#inclureSortir:
#inclure
#inclure
#inclure
Utilisation de Namespace Std;
int main()
// initialiser une carte
carteCountryCapitalMap;
countrycapitalmap.insérer (paire("Népal", "Katmandou"));
countrycapitalmap.insérer (paire("Chine", "Pékin"));
countrycapitalmap.insérer (paire("France", "Paris"));
// itérer en utilisant Iterator pour Loop
for (Auto iTr = countrycapitalmap.commencer();
itr != CountryCapitalMap.fin(); itr ++)
std :: cout << itr->First // Clé d'accès
<< ':'
<< itr->deuxième // valeur d'accès
<< std::endl;
retour 0;
Comme vous pouvez le voir, nous avons imprimé Country: Capital (clé: valeur) en utilisant pour Loop.
Si vous remarquez, nous avons utilisé auto Type spécificateur pour Map Iterator en raison de la lisibilité. Vous pouvez utiliser Carte :: Iterator explicitement aussi.
Note: Si vous voyez la sortie, elle est triée par des clés dans l'ordre croissant. En effet. Puisque nous n'avons fourni aucun comparateur, C ++ a donc utilisé le comparateur par défaut pour la chaîne.
Utilisation de boucle while avec STP :: Map
Nous pouvons également utiliser une boucle.
#inclure
#inclure
#inclure
#inclure
Utilisation de Namespace Std;
int main()
// initialiser une carte
carteCountryCapitalMap;
// insérer différents éléments dans la carte
countrycapitalmap.insérer (paire("Inde", "Delhi"));
countrycapitalmap.insérer (paire("Népal", "Katmandou"));
countrycapitalmap.insérer (paire("Chine", "Pékin"));
countrycapitalmap.insérer (paire("France", "Paris"));
// Créez un itérateur pour la carte et initialisez avec Begin
Auto ITR = countrycapitalmap.commencer();
// itérer en utilisant Iterator dans la boucle
tandis que (iTr!= CountryCapitalMap.fin())
std :: cout << itr->First // Clé d'accès
<< ':'
<< itr->deuxième // valeur d'accès
<< std::endl;
ITR ++;
retour 0;
Sortir:
Chine: PékinUtilisation de la plage basée pour Loop (version C ++ 11)
Si vous utilisez la version C ++ 11, alors c'est le moyen le plus élégant d'itérer sur la carte en C++. Vous pouvez éviter les boucles traditionnelles des cubes et l'utiliser à la place.
#inclureSortir:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
// initialiser une carte
carteCountryCapitalMap;
// insérer différents éléments dans la carte
countrycapitalmap.insérer (paire("Inde", "Delhi"));
countrycapitalmap.insérer (paire("Népal", "Katmandou"));
countrycapitalmap.insérer (paire("Chine", "Pékin"));
countrycapitalmap.insérer (paire("France", "Paris"));
// itérer en utilisant Iterator pour Loop
pour (const auto & ele: countrycapitalmap)
couter <
retour 0;
Utilisation de la plage basée sur la boucle avec des paires de valeurs clés (version C ++ 17)
Cette version est prise en charge à partir de C ++ 17 et fournit un moyen plus flexible d'itérer sur la carte. Vous pouvez accéder explicitement à la paire de valeurs clés dans la carte qui fournit une solution encore plus lisible.
#inclureSortir:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
// initialiser une carte
carteCountryCapitalMap;
// insérer différents éléments dans la carte
countrycapitalmap.insérer (paire("Inde", "Delhi"));
countrycapitalmap.insérer (paire("Népal", "Katmandou"));
countrycapitalmap.insérer (paire("Chine", "Pékin"));
countrycapitalmap.insérer (paire("France", "Paris"));
// itérer en utilisant Iterator pour Loop
for (const auto & [key, valeur]: countrycapitalmap)
couter << key << ":" << value << "\n";
retour 0;
C'est tout sur la façon d'itérer sur la carte en c++.