Sdílet prostřednictvím


parallel_transform – funkce

Každý prvek ve zdrojové oblasti nebo dvojice prvků ze dvou zdrojových oblastí platí objektu zadané funkce a vrácené hodnoty funkce objektu se zkopíruje do cílové oblasti, paralelně.Tomto funkční je sémanticky shodné s 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
);

Parametry

  • _Input_iterator1
    Typ první nebo pouze vstupní iterace.

  • _Output_iterator
    Typ výstupu iterace.

  • _Unary_operator
    Typ functor unární mají být provedeny na každý prvek ve vstupní oblasti.

  • _Input_iterator2
    Typ vstupního druhé iterace.

  • _Binary_operator
    Typ binary functor provedeny na prvky ze dvou zdrojových oblastí použití.

  • _Partitioner

  • _First1
    Vstupní iterační pozici první prvek v prvním nebo pouze zdrojové oblasti provozováno na adresování.

  • _Last1
    Vstupní iterační pozice jeden za poslední prvek v první nebo pouze zdrojové oblasti provozováno na adresování.

  • _Result
    Iterace výstup adresování pozici první prvek v cílové oblasti.

  • _Unary_op
    Objekt unární uživatelem definované funkce použité pro každý prvek ve zdrojové oblasti.

  • _Part
    Odkaz na objekt partitioner.Argument může být jeden z constauto_partitioner&, conststatic_partitioner&, constsimple_partitioner& nebo affinity_partitioner& Pokud affinity_partitioner je použit objekt, odkaz musí být bez const l hodnota odkaz tak, aby algoritmus lze ukládat stav pro budoucí smyčky na opakované použití.

  • _First2
    Vstupní iterace adresování pozici první prvek druhé zdrojové oblasti ovládané na.

  • _Binary_op
    Uživatelem definované funkce binární objekt použité skupině, v pořadí vpřed na dva zdrojové oblasti.

Vrácená hodnota

Iterace výstup adresování jednu pozici za poslední prvek v cílové oblasti přijímající výstupní prvky transformovány pomocí funkce objektu.

Poznámky

auto_partitioner bude použita pro přetížení bez explicitní partitioner argument.

Pro u iterátorů, které nepodporují náhodný přístup pouze k auto_partitioner je podporována.

Přetížení, které argument _Unary_op transformace vstupní oblast do výstupní oblast použitím unární functor pro každý prvek ve vstupní oblasti._Unary_opmusí podporovat operátor volání funkce s podpisem operator()(T) kde T je typ hodnoty se musí přes vstupní oblasti.

Přetížení, které argument _Binary_op transformaci dva vstupní oblasti do výstupní oblast použitím binární functor jednoho prvku z první vstupní oblasti a jeden prvek z druhé vstupní oblasti._Binary_opmusí podporovat operátor volání funkce s podpisem operator()(T, U) kde T, U typy dva u iterátorů vstupní hodnotu.

Další informace naleznete v tématu Paralelní algoritmy.

Požadavky

Záhlaví: ppl.h

Obor názvů: souběžnosti

Viz také

Referenční dokumentace

concurrency – obor názvů