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
);

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

Consulte também

Referência

simultaneidade Namespace