Заполнение многомерных словарей в C++
Пустой словарь словарей собирают двумя циклами по готовым ключам. Внешний цикл берет ключ верхнего уровня, внутренний записывает число во вложенный словарь:
std::map<std::string, std::map<std::string, int>> dct;
std::string keys[2] = {"a", "b"};
std::string sub[2] = {"x", "y"};
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
dct[keys[i]][sub[j]] = j + 1;
}
}
std::cout << dct["b"]["y"] << "\n"; // выведет 2
Даны ключи:
std::string keys[2] = {"n", "s"};
std::string sub[2] = {"a", "b"};
Заполните словарь словарей: по каждому
внешнему ключу внутренние значения равны
10 и 20. Выведите число
по ключам "s" и "a".
Дан вектор ключей и число:
std::vector<std::string> keys = {"red", "blue", "green"};
int num = 5;
Заполните словарь словарей: у каждого
ключа из вектора есть внутренняя пара
с ключом "id" и этим числом.
Выведите значение по ключам "green"
и "id".