Compartir a través de


parallel_transform (Función)

Se aplica un objeto especificado de la función a cada elemento de un intervalo de origen, o un par de elementos de dos intervalos de origen, y copia los valores devueltos del objeto function en un rango de destino, en paralelo.Este funcional es semánticamente 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
    El tipo del primer o sólo iterador de la entrada.

  • _Output_iterator
    El tipo de iterador de salida.

  • _Unary_operator
    El tipo de functor unario que se ejecutará en cada elemento en el rango de entrada.

  • _Input_iterator2
    El tipo de segundo iterador de la entrada.

  • _Binary_operator
    El tipo de functor binario ejecutado en pares de elementos de los dos intervalos de origen.

  • _Partitioner

  • _First1
    Un iterador de entrada que dirige la posición del primer elemento de la primera o sólo de intervalos de origen que se va a trabajar.

  • _Last1
    Un iterador de entrada que dirige la posición una más allá del último elemento en la primera o sólo de intervalos de origen que se va a trabajar.

  • _Result
    Un iterador de salida que dirige la posición del primer elemento del intervalo de destino.

  • _Unary_op
    Un objeto singular definida por el usuario de la función que se aplica a cada elemento del intervalo de origen.

  • _Part
    Una referencia al objeto de particionador.El argumento puede ser uno de constauto_partitioner&, de conststatic_partitioner&, de constsimple_partitioner& o de affinity_partitioner& si se usa un objeto de affinity_partitioner , referencia debe ser una referencia no const de valor l, de modo que el algoritmo puede almacenar el estado para que los bucles futuros reusen.

  • _First2
    Un iterador de entrada que dirige la posición del primer elemento del intervalo de segundo origen que se va a trabajar.

  • _Binary_op
    Un objeto binario definido por el usuario de la función que se aplica en pares, en un orden frontal, los dos intervalos de origen.

Valor devuelto

Un iterador de salida que las la posición una más allá del último elemento en el rango de destino que está recibiendo los elementos de salida transformó por el objeto function.

Comentarios

auto_partitioner se utilizará para las sobrecargas sin un argumento explícito del particionador.

Para iteradores que no admiten el acceso aleatorio, sólo se admite auto_partitioner .

Las sobrecargas que transportan la transformación de _Unary_op de argumento el rango de entrada en el rango de salida aplicando el functor unario cada elemento en el rango de entrada._Unary_op debe admitir el operador de llamada de función con la firma operator()(T) donde el tipo de valor T de intervalo que es iterado sobre.

Las sobrecargas que transportan la transformación de _Binary_op de argumento dos rangos de entrada en el rango de salida aplicando el functor binario un elemento del primer rango de entrada y un elemento del segundo intervalo de entrada._Binary_op debe admitir el operador de llamada de función con la firma operator()(T, U) donde tipos de valor T, U de los dos iteradores de entrada.

Para obtener más información, vea Algoritmos paralelos.

Requisitos

Encabezado: ppl.h

Simultaneidad deespacio de nombres:

Vea también

Referencia

concurrency (Espacio de nombres)