首页 >后端开发 >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