首頁 >後端開發 >C++ >如何在 C 中迭代嵌套映射?

如何在 C 中迭代嵌套映射?

DDD
DDD原創
2024-12-04 20:23:12167瀏覽

How Can I Iterate Over Nested Maps in C  ?

在 C 中迭代巢狀映射

在 C 中循環映射的映射可以使用巢狀 for 迴圈來完成。考慮以下容器:

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

嵌套For 循環:

要迭代此映射,請使用嵌套for 循環:

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

這種方法可以存取巢狀中每個元素的外部鍵、內部鍵和值。 map.

C 11 增強:

在C 11 中,基於範圍的for 循環可用來簡化上述程式碼:

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

C 17結構化綁定:

在C 17 中,結構化綁定可以進一步簡化語法:

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

透過使用這些方法,您可以有效地循環巢狀映射並存取它們包含的數據.

以上是如何在 C 中迭代嵌套映射?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn