Функция parallel_for_each
parallel_for_each применяет указанную функцию к каждому элементу в диапазоне, параллельно. Оно эквивалентно семантически функции for_each в пространстве имен std, за исключением того, что итерации по элементам выполняется параллельно, и порядок итерации не определен. Аргумент _Func должен поддерживать оператор вызова функции формы operator()(T), где параметр T является типом элемента контейнера, итерация по которому выполняется.
template <
typename _Iterator,
typename _Function
>
void parallel_for_each(
_Iterator_First,
_Iterator_Last,
const _Function& _Func
);
template <
typename _Iterator,
typename _Function,
typename _Partitioner
>
void parallel_for_each(
_Iterator_First,
_Iterator_Last,
const _Function& _Func,
_Partitioner&& _Part
);
Параметры
_Iterator
Тип итератор, используемый для перебора контейнера._Function
Тип функции, которая будут применяться к каждому элементу в диапазоне._Partitioner
_First
Итератор, обращающийся к положению первого элемента для включения в параллельных итерации._Last
Итератор, обращающийся к положению на одно дальше последнего элемента для включения в параллельных итерации._Func
Объект определяемой пользователем функции, который применяется к каждому элементу в диапазоне._Part
Ссылка на объект-разделитель. Аргумент может быть одним из constauto_partitioner&, conststatic_partitioner&, constsimple_partitioner& или affinity_partitioner&, если используется объект affinity_partitioner, ссылка должен быть неконстантной l-value ссылкой, чтобы алгоритм мог сохранять состояние для последующих циклов при повторном использовании.
Заметки
auto_partitioner используется для перегрузки без явного аргумента разделения.
Для итераторов, не поддерживающих прямой доступ, поддерживается только auto_partitioner.
Для получения дополнительной информации см. Параллельные алгоритмы.
Требования
Заголовок: ppl.h
Пространство имен: concurrency