Maison > développement back-end > C++ > Comment accéder efficacement aux valeurs d'une carte C imbriquée à l'aide d'itérateurs ?

Comment accéder efficacement aux valeurs d'une carte C imbriquée à l'aide d'itérateurs ?

Linda Hamilton
Libérer: 2024-12-02 22:09:15
original
312 Les gens l'ont consulté

How Do I Efficiently Access Values in a Nested C   Map Using Iterators?

Accès aux valeurs dans une carte C multicouche à l'aide d'itérateurs

Itération à travers une carte C de cartes, où les cartes internes contiennent des clés- les paires de valeurs peuvent être obtenues efficacement à l’aide d’itérateurs. Voici comment procéder :

Déclarez la carte comme suit :

std::map<std::string, std::map<std::string, std::string>> m;
Copier après la connexion

Pour parcourir la carte externe, utilisez la commande suivante syntaxe :

for (auto& outer_entry : m) {
  std::string outer_key = outer_entry.first;
  std::map<std::string, std::string>& inner_map = outer_entry.second;

  // Iterate through the inner map using a nested loop
  for (auto& inner_entry : inner_map) {
    std::string inner_key = inner_entry.first;
    std::string inner_value = inner_entry.second;

    // Access the inner values here
  }
}
Copier après la connexion

Exemple :

m["name1"]["value1"] = "data1";
m["name1"]["value2"] = "data2";
m["name2"]["value1"] = "data1";
m["name2"]["value2"] = "data2";
m["name3"]["value1"] = "data1";
m["name3"]["value2"] = "data2";

for (auto& outer_entry : m) {
  std::cout << "Outer Key: " << outer_entry.first << std::endl;
  for (auto& inner_entry : outer_entry.second) {
    std::cout << "Inner Key: " << inner_entry.first << " - Value: " << inner_entry.second << std::endl;
  }
  std::cout << std::endl;
}
Copier après la connexion

Sortie :

Outer Key: name1
Inner Key: value1 - Value: data1
Inner Key: value2 - Value: data2

Outer Key: name2
Inner Key: value1 - Value: data1
Inner Key: value2 - Value: data2

Outer Key: name3
Inner Key: value1 - Value: data1
Inner Key: value2 - Value: data2
Copier après la connexion

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal