Функция 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-значением, не являющимся константными, чтобы алгоритм мог хранить состояние для последующих циклов для повторного использования.
Заметки
auto_partitioner будет использоваться для перегрузки без явного модуля разделения.
Для итераторов, не поддерживающих прямой доступ, только auto_partitioner поддерживается.
Дополнительные сведения см. в разделе Параллельные алгоритмы.
Требования
Заголовок: ppl.h
Параллелизм пространство имен: