Heim >Backend-Entwicklung >C++ >Wie greife ich mithilfe von Iteratoren effizient auf Werte in einer verschachtelten C-Map zu?

Wie greife ich mithilfe von Iteratoren effizient auf Werte in einer verschachtelten C-Map zu?

Linda Hamilton
Linda HamiltonOriginal
2024-12-02 22:09:15306Durchsuche

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

Zugriff auf Werte in einer mehrschichtigen C-Karte mithilfe von Iteratoren

Iterieren durch eine C-Karte von Karten, wobei die inneren Karten Schlüssel enthalten Wertepaare können mithilfe von Iteratoren effizient erreicht werden. So können Sie es machen:

Deklarieren Sie die Karte wie folgt:

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

Um die äußere Karte zu durchlaufen, verwenden Sie Folgendes Syntax:

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
  }
}

Beispiel:

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;
}

Ausgabe:

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

Das obige ist der detaillierte Inhalt vonWie greife ich mithilfe von Iteratoren effizient auf Werte in einer verschachtelten C-Map zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn