Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpPmMdCI 251 of 390 menu
◀ ▶

Цикл по многомерным комбинациям в C++

Массив векторов

Внешний цикл идет по ячейкам массива, внутренний - по элементам вектора. Сумму копят с нуля:

std::vector<int> arr[2] = { {1, 2}, {3, 4, 5}, }; int sum = 0; for (int i = 0; i < 2; ++i) { for (int j = 0; j < arr[i].size(); ++j) { std::cout << arr[i][j] << "\n"; sum += arr[i][j]; } } std::cout << sum << "\n"; // выведет 15

Словарь векторов

Внешний цикл дает вектор по очередному ключу, внутренний проходит его элементы:

std::map<std::string, std::vector<int>> dct = { {"a", {1, 2}}, {"b", {3, 4}}, }; int sum = 0; for (const auto& elem : dct) { for (int j = 0; j < elem.second.size(); ++j) { std::cout << elem.second[j] << "\n"; sum += elem.second[j]; } } std::cout << sum << "\n"; // выведет 10

Вектор словарей

Внешний цикл выбирает словарь по индексу, внутренний складывает значения его пар:

std::vector<std::map<std::string, int>> vec = { {{"a", 1}, {"b", 2}}, {{"a", 3}, {"b", 4}}, }; int sum = 0; for (int i = 0; i < vec.size(); ++i) { for (const auto& elem : vec[i]) { std::cout << elem.second << "\n"; sum += elem.second; } } std::cout << sum << "\n"; // выведет 10

Дан массив векторов:

std::vector<int> arr[2] = { {10, 20}, {30}, };

Найдите сумму всех чисел и выведите ее в консоль.

Дан словарь векторов:

std::map<std::string, std::vector<int>> dct = { {"Ann", {5, 4, 5}}, {"Bob", {3, 5, 4}}, };

Найдите сумму всех оценок и выведите ее в консоль.

Дан вектор словарей:

std::vector<std::map<std::string, int>> vec = { {{"a", 10}, {"b", 20}}, {{"a", 30}, {"b", 40}}, };

Найдите сумму всех чисел и выведите ее в консоль.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить