Цикл по многомерным словарям в C++
Словарь словарей обходят двумя циклами. Внешний дает очередной внутренний словарь, внутренний - его пары. Числа из пар складывают, начиная с нуля:
std::map<std::string, std::map<std::string, int>> dct = {
{"a", {{"x", 1}, {"y", 2}}},
{"b", {{"x", 3}, {"y", 4}}},
};
int sum = 0;
for (const auto& elem : dct) {
for (const auto& inner : elem.second) {
std::cout << inner.second << "\n";
sum += inner.second;
}
}
std::cout << sum << "\n"; // выведет 10
Дан словарь словарей:
std::map<std::string, std::map<std::string, int>> dct = {
{"a", {{"x", 10}, {"y", 20}}},
{"b", {{"x", 30}, {"y", 40}}},
};
Найдите сумму всех чисел и выведите ее в консоль.
Дан словарь из трех уровней:
std::map<std::string, std::map<std::string, std::map<std::string, int>>> dct = {
{"g", {{"u", {{"age", 20}, {"year", 2000}}}}},
};
Найдите сумму всех чисел и выведите ее в консоль.