C++

Comment itérer sur la carte en C++

Comment itérer sur la carte en C++
Dans ce rapide tutoriel, nous allons voir comment itérer sur la carte en C++.

Il existe plusieurs façons d'itérer sur la carte en C++. Avec les nouvelles versions de C++, il existe des moyens plus avancés d'itérer sur la carte en C++.

Passons en revue chacun par un.

Utilisation de la boucle for avec stp::map

Nous avons créé une carte nommée paysCapitalCarte et y insérer des paires clé-valeur.


#inclure
#inclure
#inclure
#inclure
#inclure
en utilisant l'espace de noms std ;
int main()
// Initialiser une carte
carte>"Inde", "Delhi"));
paysCapitalCarte.insérer (paire("Népal", "Katmandou"));
paysCapitalCarte.insérer (paire("Chine", "Pékin"));
paysCapitalCarte.insérer (paire(« France », « Paris »);
// Itérer en utilisant l'itérateur dans la boucle for
pour (auto itr = countryCapitalMap.commencer(); itr != paysCapitalMap.finir(); itr++)

std::cout << itr->premier // Clé d'accès
<< ':'
<< itr->seconde // Valeur d'accès
<< std::endl;

renvoie 0 ;


Production:

Chine : Pékin
France : Paris
Inde : Delhi
Népal :Katmandou

Comme vous pouvez le voir, nous avons imprimé country:capital(key:value) en utilisant la boucle for.

Si vous remarquez, nous avons utilisé auto spécificateur de type pour l'itérateur de carte en raison de la lisibilité. Vous pouvez utiliser carte::itérateur explicitement aussi.
Noter: Si vous voyez la sortie, elle est triée par clés dans l'ordre croissant. En effet, std::map est un conteneur associatif trié avec le comparateur fourni (à partir de la version C++11). Comme nous n'avons fourni aucun comparateur, C++ a donc utilisé le comparateur par défaut pour la chaîne.

Utilisation de la boucle while avec stp::map

Nous pouvons également utiliser une boucle while au lieu d'une boucle for.


#inclure
#inclure
#inclure
#inclure >
en utilisant l'espace de noms std ;
int main()
// Initialiser une carte
carte paysCapitalMap;
// Insérer différents éléments dans la carte
paysCapitalCarte.insérer (paire("Inde", "Delhi"));
paysCapitalCarte.insérer (paire("Népal", "Katmandou"));
paysCapitalCarte.insérer (paire("Chine", "Pékin"));
paysCapitalCarte.insérer (paire(« France », « Paris »);
// Créer un itérateur pour la carte et initialiser avec begin
auto itr=countryCapitalMap.commencer();
// Itérer en utilisant l'itérateur dans la boucle while
tandis que (itr!=paysCapitalMap.finir())

std::cout << itr->premier // Clé d'accès
<< ':'
<< itr->seconde // Valeur d'accès
<< std::endl;
itr++ ;

renvoie 0 ;


Production:

Chine : Pékin
France : Paris
Inde : Delhi
Népal :Katmandou

Utilisation de la boucle for Range (à partir de la version C++11)

Si vous utilisez la version C++11, c'est le moyen le plus élégant d'itérer sur la carte en C++. Vous pouvez éviter les boucles cubiques traditionnelles et les utiliser à la place.


#inclure
#inclure
#inclure
en utilisant l'espace de noms std ;
int main()
// Initialiser une carte
carte paysCapitalMap;
// Insérer différents éléments dans la carte
paysCapitalCarte.insérer (paire("Inde", "Delhi"));
paysCapitalCarte.insérer (paire("Népal", "Katmandou"));
paysCapitalCarte.insérer (paire("Chine", "Pékin"));
paysCapitalCarte.insérer (paire(« France », « Paris »);
// Itérer en utilisant l'itérateur dans la boucle for
for (const auto &ele : countryCapitalMap)
cout <
renvoie 0 ;


Production:
Chine : Pékin
France : Paris
Inde : Delhi
Népal :Katmandou

Utilisation d'une boucle for basée sur une plage avec des paires clé-valeur (version C++17 et suivantes)

Cette version est prise en charge à partir de c++17 et offre un moyen plus flexible d'itérer sur la carte. Vous pouvez accéder explicitement à la paire de valeurs-clés dans la carte, ce qui fournit une solution encore plus lisible.


#inclure
#inclure
#inclure
en utilisant l'espace de noms std ;
int main()
// Initialiser une carte
carte paysCapitalMap;
// Insérer différents éléments dans la carte
paysCapitalCarte.insérer (paire("Inde", "Delhi"));
paysCapitalCarte.insérer (paire("Népal", "Katmandou"));
paysCapitalCarte.insérer (paire("Chine", "Pékin"));
paysCapitalCarte.insérer (paire(« France », « Paris »);
// Itérer en utilisant l'itérateur dans la boucle for
for (const auto& [clé, valeur] : countryCapitalMap)
cout << key << ":" << value << "\n";

renvoie 0 ;


Production:
Chine : Pékin
France : Paris
Inde : Delhi
Népal :Katmandou

C'est tout sur la façon d'itérer sur la carte en C++. Bon codage!

Moteurs de jeux gratuits et open source pour le développement de jeux Linux
Cet article couvrira une liste de moteurs de jeux gratuits et open source qui peuvent être utilisés pour développer des jeux 2D et 3D sur Linux. Il ex...
Tutoriel Shadow of the Tomb Raider pour Linux
Shadow of the Tomb Raider est le douzième ajout à la série Tomb Raider - une franchise de jeux d'action-aventure créée par Eidos Montréal. Le jeu a ét...
Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...