Многомерные комбинации в C++
Массив векторов
C-массив может хранить векторы. У каждой ячейки своя длина. Сначала берут вектор по индексу массива, затем элемент вектора:
std::vector<int> arr[2] = {
{1, 2},
{3, 4, 5},
};
std::cout << arr[1][2] << "\n"; // выведет 5
Словарь векторов
Значением пары словаря может быть вектор. Сначала вектор получают по ключу, затем элемент по индексу:
std::map<std::string, std::vector<int>> dct = {
{"a", {1, 2, 3}},
{"b", {4, 5, 6}},
};
std::cout << dct["a"][1] << "\n"; // выведет 2
Вектор словарей
Вектор может хранить словари. Сначала выбирают словарь по индексу вектора, затем значение по ключу:
std::vector<std::map<std::string, int>> vec = {
{{"id", 1}, {"age", 27}},
{{"id", 2}, {"age", 31}},
};
std::cout << vec[1]["age"] << "\n"; // выведет 31
Дан массив векторов:
std::vector<char> arr[2] = {
{'x', 'y'},
{'z', 'w', 'v'},
};
Выведите в консоль второй символ первого вектора.
Дан словарь векторов:
std::map<std::string, std::vector<int>> dct = {
{"Ann", {5, 4, 5}},
{"Bob", {3, 5, 4}},
};
Выведите вторую оценку ученика "Bob".
Дан вектор словарей:
std::vector<std::map<std::string, std::string>> vec = {
{{"city", "Paris"}, {"code", "33"}},
{{"city", "Rome"}, {"code", "39"}},
};
Выведите в консоль название города из второго словаря.