/
ArtT
/
Netology
Обзор
Документация
Войти
/
ArtT
/
Netology
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Part5/Task_5_3_2/Task_5_3_2.cpp
49 строк
1 KB
ArtT
Добавил задание 5_3
01 июн 2026, 21:40
01 июн 2026, 21:40
5f1f0fb
Код
Авторство
О чём код?
#include <iostream> #include <random> #include <vector> #include <future> using namespace std; template <typename Iterator, typename Functor> void parallel_for_each(Iterator first, Iterator last, Functor func) { auto size = distance(first, last); if (size <= 10) { for_each(first, last, func); } else { Iterator mid = first; advance(mid, size / 2); auto first_half = async(parallel_for_each<Iterator, Functor>, first, mid, func); parallel_for_each(mid, last, func); first_half.wait(); } } int main() { setlocale(LC_ALL, "rus"); vector<int> V(20); mt19937 gen(random_device{}()); uniform_int_distribution<int> dis(0, 1'000); auto rand_num([=]() mutable {return dis(gen); }); generate(V.begin(), V.end(), rand_num); cout << "Исходный массив: "; for (int i = 0; i < V.size(); i++) cout << V[i] << " "; cout << endl; parallel_for_each(V.begin(), V.end(), [](int& n) { n++; }); cout << "Конечный массив: "; for (int i = 0; i < V.size(); ++i) cout << V[i] << " "; cout << endl; return EXIT_SUCCESS; }