Функция parallel_for
parallel_for выполняет итерацию по диапазону индексов и выполняет предоставленный пользователем функцию в каждой итерации параллельно.
template <
typename _Index_type,
typename _Function,
typename _Partitioner
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
_Index_type_Step,
const _Function& _Func,
_Partitioner&& _Part
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
_Index_type_Step,
const _Function& _Func
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
const _Function& _Func,
const auto_partitioner& _Part = auto_partitioner()
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
const _Function& _Func,
const static_partitioner& _Part
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
const _Function& _Func,
const simple_partitioner& _Part
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
const _Function& _Func,
affinity_partitioner& _Part
);
Параметры
_Index_type
Тип индекса, используемого для итерации._Function
Тип функции, которая будет выполняться при каждой итерации._Partitioner
Тип модуль разделения, который используется для разделения предоставленный диапазон._First
Первый индекс для включения в итерации._Last
Индекс на один после последнего индекса для включения в итерации._Step
Значение шага при переборе от _First до _Last.Этап должно быть положительным.invalid_argument выбрасывается, если шаг меньше, чем 1._Func
Функция, выполняемая в каждой итерации.Это может быть лямбда-выражение, указатель функции или другой объект, который поддерживает версию оператора вызова функции с сигнатурой void operator()(_Index_type**)**._Part
Ссылка на объект модуля разделения.Аргумент может принимать одно из constauto_partitioner&, conststatic_partitioner&, constsimple_partitioner& или affinity_partitioner&, если объект affinity_partitioner используется, то ссылка должен быть ссылкой l-значением, не являющимся константными, чтобы алгоритм мог хранить состояние для последующих циклов для повторного использования.
Заметки
Дополнительные сведения см. в разделе Параллельные алгоритмы.
Требования
Заголовок: ppl.h
Параллелизм пространство имен: