Função de parallel_transform
Aplica um objeto de função especificada para cada elemento em um intervalo de origem ou para um par de elementos de dois intervalos de origem e copia os valores de retorno de objeto de função em um intervalo de destino, em paralelo.Neste funcional é semanticamente equivalente a 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
O tipo do primeiro ou somente entrada iterador._Output_iterator
O tipo de iterador de saída._Unary_operator
O tipo de functor unário para ser executado em cada elemento no intervalo de entrada._Input_iterator2
O tipo de iterador de entrada segundo._Binary_operator
Tipo de functor binário pairwise executada em elementos de intervalos de origem de dois._Partitioner
_First1
Um iterador entrado endereçamento a posição do primeiro elemento no primeiro ou somente o intervalo de origem para ser operado em._Last1
Um iterador entrado endereçamento a posição um após o elemento final no primeiro ou somente o intervalo de origem para ser operado em._Result
Um iterador de saída endereçamento a posição do primeiro elemento no intervalo de destino._Unary_op
Um objeto de função definida pelo usuário unário é aplicado a cada elemento no intervalo de origem._Part
Uma referência ao objeto partitioner.O argumento pode ser uma das constauto_partitioner&, conststatic_partitioner&, constsimple_partitioner& ou affinity_partitioner& se um affinity_partitioner o objeto é usado, a referência deve ser uma referência não-const l-value, para que o algoritmo possa armazenar o estado futuro loops para reutilização._First2
Um entrada iterador endereçamento a posição do primeiro elemento no intervalo de origem segundo para ser operado em._Binary_op
Um objeto de função binária definida pelo usuário pairwise, aplicado em uma ordem direta, a intervalos de dois origem.
Um iterador de saída endereçamento posição um após o elemento final no intervalo de destino que está recebendo os elementos de saída transformados pelo objeto de função.
auto_partitioner será usado para sobrecargas sem um argumento partitioner explícita.
Para acessar iteradores não suportam aleatório, apenas auto_partitioner é suportado.
As sobrecargas que utilizam o argumento _Unary_op transformar o intervalo de entrada no intervalo de saída aplicando functor unário para cada elemento no intervalo de entrada._Unary_opdeve oferecer suporte o operador de chamada de função com assinatura operator()(T) onde T é o tipo de valor do intervalo sendo iterado.
As sobrecargas que utilizam o argumento _Binary_op transformar dois intervalos de entrada no intervalo de saída aplicando functor binário para um elemento do primeiro intervalo de entrada e um elemento do segundo intervalo de entrada._Binary_opdeve oferecer suporte o operador de chamada de função com assinatura operator()(T, U) onde T, U são tipos de valor de iteradores de entrada dois.
Para mais informações, consulte Algoritmos paralelos.
Cabeçalho: ppl.h
Namespace: concorrência