Função parallel_transform
Aplica um objeto especificado da função a cada elemento em um intervalo de origem, ou a um par de elementos de dois intervalos de origem, e copia valores de retorno do objeto da função em um intervalo de destino, em paralelo. Este 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 apenas iterador entrada._Output_iterator
O tipo do iterador de saída._Unary_operator
O tipo de funtor unário a ser executado em cada elemento no intervalo de entrada._Input_iterator2
O tipo de segundo iterador de entrada._Binary_operator
O tipo de funtor binário executada por par em elementos dos dois intervalos de origem._Partitioner
_First1
Um iterador de entrada que trata a posição do primeiro elemento na primeira ou apenas do intervalo de origem ser operado em._Last1
Um iterador de entrada que trata a posição uma depois do elemento final na primeira ou o intervalo de origem ser operado em._Result
Um iterador de saída que trata a posição do primeiro elemento no intervalo de destino._Unary_op
Um objeto unário definido pelo usuário da função que é aplicado a cada elemento no intervalo de origem._Part
Uma referência ao objeto de partitioner. O argumento pode ser um de constauto_partitioner&, de conststatic_partitioner&, de constsimple_partitioner& ou de affinity_partitioner& se um objeto de affinity_partitioner for usado, a referência deve ser uma referência de l- valor de não const, de forma que o algoritmo possa armazenar o estado para que o loop futuros reuso._First2
Um iterador de entrada que trata a posição do primeiro elemento no intervalo de segunda fonte ser operado em._Binary_op
Um objeto binário definido pelo usuário da função que é aplicado em pares, em ordem avançar, os dois intervalos de origem.
Valor de retorno
Um iterador de saída que trata a posição uma depois do 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 as sobrecargas sem um argumento explícito de partitioner.
Para os iteradores que não dão suporte de acesso aleatório, somente auto_partitioner tem suporte.
As sobrecargas que usam o argumento _Unary_op torna o intervalo de entrada no intervalo de saída aplicando o funtor unário para cada elemento no intervalo de entrada. _Unary_op deve oferecer suporte ao operador de chamada de função com assinatura operator()(T) onde T é o tipo de valor de intervalo que está sendo iterada sobre.
As sobrecargas que usam o argumento _Binary_op torna dois intervalos de entrada no intervalo de saída aplicando o funtor binário a um elemento do primeiro intervalo de entrada e um elemento do intervalo de entrada. _Binary_op deve oferecer suporte ao operador de chamada de função com assinatura operator()(T, U) onde T, U é tipos de valor de dois iteradores de entrada.
Para obter mais informações, consulte Algoritmos paralelos.
Requisitos
Cabeçalho: ppl.h
Namespace: simultaneidade