在 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中文网其他相关文章!