Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
);
Parâmetros
_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.
Valor de retorno
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.
Comentários
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.
Requisitos
Cabeçalho: ppl.h
Namespace: concorrência