Функция parallel_transform
Применяет указанный объект функции к каждому элементу в диапазоне источника или к паре элементов из 2 диапазонов источника и копирует возвращаемые значения объекта функции в диапазон назначения, параллельно.Эта функциональная семантически эквивалентной привязке std::transform.
template <
typename _Input_iterator1,
typename _Output_iterator,
typename _Unary_operator
>
_Output_iterator parallel_transform(
_Input_iterator1_First1,
_Input_iterator1_Last1,
_Output_iterator_Result,
const _Unary_operator& _Unary_op,
const auto_partitioner& _Part = auto_partitioner()
);
template <
typename _Input_iterator1,
typename _Output_iterator,
typename _Unary_operator
>
_Output_iterator parallel_transform(
_Input_iterator1_First1,
_Input_iterator1_Last1,
_Output_iterator_Result,
const _Unary_operator& _Unary_op,
const static_partitioner& _Part
);
template <
typename _Input_iterator1,
typename _Output_iterator,
typename _Unary_operator
>
_Output_iterator parallel_transform(
_Input_iterator1_First1,
_Input_iterator1_Last1,
_Output_iterator_Result,
const _Unary_operator& _Unary_op,
const simple_partitioner& _Part
);
template <
typename _Input_iterator1,
typename _Output_iterator,
typename _Unary_operator
>
_Output_iterator parallel_transform(
_Input_iterator1_First1,
_Input_iterator1_Last1,
_Output_iterator_Result,
const _Unary_operator& _Unary_op,
affinity_partitioner& _Part
);
template <
typename _Input_iterator1,
typename _Input_iterator2,
typename _Output_iterator,
typename _Binary_operator,
typename _Partitioner
>
_Output_iterator parallel_transform(
_Input_iterator1_First1,
_Input_iterator1_Last1,
_Input_iterator2_First2,
_Output_iterator_Result,
const _Binary_operator& _Binary_op,
_Partitioner&& _Part
);
template <
typename _Input_iterator1,
typename _Input_iterator2,
typename _Output_iterator,
typename _Binary_operator
>
_Output_iterator parallel_transform(
_Input_iterator1_First1,
_Input_iterator1_Last1,
_Input_iterator2_First2,
_Output_iterator_Result,
const _Binary_operator& _Binary_op
);
Параметры
_Input_iterator1
Тип первого входного или только итератор._Output_iterator
Тип итератора вывода._Unary_operator
Тип унарного functor, которую необходимо выполнить для каждого элемента в диапазоне ввода._Input_iterator2
Тип второго итератора ввода._Binary_operator
Тип бинарный functor выполнялся pairwise элементов из 2 диапазонов источника._Partitioner
_First1
Итератор ввода адресацию позиция первого элемента в первом или только диапазон источника обрабатываться on._Last1
Итератор ввода final адресации позиция одно за элементом на первом или только диапазоном источника обрабатываться on._Result
Итератор вывода положение первого элемента в диапазоне адресации назначения._Unary_op
Определяемый пользователем объект, который применяется унарный функции к каждому элементу в диапазоне источника._Part
Ссылка на объект модуля разделения.Аргумент может принимать одно из constauto_partitioner&, conststatic_partitioner&, constsimple_partitioner& или affinity_partitioner&, если объект affinity_partitioner используется, то ссылка должен быть ссылкой l-значением, не являющимся константными, чтобы алгоритм мог хранить состояние для последующих циклов для повторного использования._First2
Итератор ввода адресацию положение первого элемента в диапазоне второго источника обрабатываться on._Binary_op
Определяемые пользователем функции является объект, который применяется pairwise в переднем порядке, в 2 диапазонам источника.
Возвращаемое значение
При адресации позиция итератора вывода final одно за элементом в диапазоне назначения, возвращает выходные элементы преобразовал объектом функции.
Заметки
auto_partitioner будет использоваться для перегрузок без явного указания аргумента модуля разделения.
Для итераторов, не поддерживающих прямой доступ, только auto_partitioner поддерживается.
Перегруженные варианты, которые принимают аргумент _Unary_op преобразуют диапазон ввода в диапазон выходных данных путем применения унарный functor к каждому элементу в диапазоне ввода._Unary_op должен поддерживать оператор вызова функции с сигнатурой operator()(T), где T тип значения диапазона, обход которого выполняется.
Перегруженные варианты, которые принимают аргумент _Binary_op преобразования входного диапазона в диапазоне 2 выходных данных путем применения бинарный functor на один элемент из первого диапазона входов и один элемент из второго диапазона ввода._Binary_op должен поддерживать оператор вызова функции с сигнатурой operator()(T, U), где T, U типы значений, введенных итераторов 2.
Дополнительные сведения см. в разделе Параллельные алгоритмы.
Требования
заголовок: ppl.h
Параллелизм пространство имен: