Maison > développement back-end > C++ > Comment puis-je parcourir des cartes imbriquées en C ?

Comment puis-je parcourir des cartes imbriquées en C ?

DDD
Libérer: 2024-12-04 20:23:12
original
164 Les gens l'ont consulté

How Can I Iterate Over Nested Maps in C  ?

Itérer sur des cartes imbriquées en C

La boucle sur une carte de cartes en C peut être réalisée à l'aide de boucles for imbriquées. Considérons le conteneur suivant :

std::map<std::string, std::map<std::string, std::string>> m;

// Example data
m["name1"]["value1"] = "data1";
m["name1"]["value2"] = "data2";
m["name2"]["value1"] = "data1";
m["name2"]["value2"] = "data2";
m["name3"]["value1"] = "data1";
m["name3"]["value2"] = "data2";
Copier après la connexion

Boucles For imbriquées :

Pour parcourir cette carte, utilisez des boucles for imbriquées :

for (auto const &ent1 : m) {
  // ent1.first is the outer key
  for (auto const &ent2 : ent1.second) {
    // ent2.first is the inner key
    // ent2.second is the value
  }
}
Copier après la connexion

Cette approche donne accès à la clé externe, à la clé interne et à la valeur de chaque élément du fichier imbriqué. map.

Améliorations de C 11 :

En C 11, la boucle for basée sur la distance peut être utilisée pour simplifier le code ci-dessus :

for (auto const &[outer_key, inner_map] : m) {
  for (auto const &[inner_key, inner_value] : inner_map) {
    // Access outer_key, inner_key, and inner_value directly
  }
}
Copier après la connexion

Reliures structurées C 17 :

En C 17, les liaisons structurées peuvent simplifier davantage la syntaxe :

for (auto const &[outer_key, inner_map] : m) {
  for (auto const &[inner_key, inner_value] : inner_map) {
    // Access outer_key, inner_key, and inner_value without need for variables
  }
}
Copier après la connexion

En utilisant ces méthodes, vous pouvez parcourir efficacement les cartes imbriquées et accéder aux données qu'elles contiennent.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal