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