parallel_transform-Funktion
Wendet ein angegebenes Funktionsobjekt auf jedes Element im Quellbereich oder einem Paar von Elementen aus zwei Quellbereichen und kopiert die Rückgabewerte des Funktionsobjekts in einen Zielbereich parallel.Diese funktionale ist semantisch gleichwertig zu 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
);
Parameter
_Input_iterator1
Der Typ des ersten oder nur Eingabeiterator._Output_iterator
Der Typ des Ausgabeiterators._Unary_operator
Der Typ des unären für jedes Element im Eingabebereich Funktionselements ausgeführt werden soll._Input_iterator2
Der Typ des zweiten Eingabeiterators._Binary_operator
Der Typ des binären Funktionselements paarweise führt bei Elementen aus den zwei Quellbereichen aus._Partitioner
_First1
Ein Eingabeiterator, der die Position des ersten Elements in der ersten bzw. des Quellbereichs behandelt nur ausgeführt werden soll, an._Last1
Ein Eingabeiterator, der die Position hinter dem letzten Element eine in der ersten oder nur Quellbereich adressiert an ausgeführt werden soll._Result
Ein Ausgabeiterator, der die Position des ersten Elements im Zielbereich behoben werden._Unary_op
Ein benutzerdefiniertes unäres Funktionsobjekt, die jedem Element im Quellbereich angewendet wird._Part
Ein Verweis auf den Partitionierer Objekt.Das Argument kann eine von constauto_partitioner&, conststatic_partitioner&, constsimple_partitioner& oder affinity_partitioner& sein, wenn ein affinity_partitioner-Objekt verwendet wird, muss ein Verweis nicht konstante L-Werts-Verweis sein, damit der Algorithmus Zustand speichern kann, für die zukünftige Wiederverwendung Schleifen._First2
Ein Eingabeiterator, der die Position des ersten Elements im zweiten Quellbereich adressiert an ausgeführt werden soll._Binary_op
Ein benutzerdefiniertes binäres Funktionsobjekt, der in einem Terminauftrag, zwei Quellbereichen paarweise auf.
Rückgabewert
Ein Ausgabeiterator, der die Position hinter dem letzten Element eine im Zielbereich adressiert, der die Ausgabeelemente empfängt, Transformation vom Funktionsobjekt.
Hinweise
auto_partitioner wird für die Überladungen ohne ein explizites Partitionierer - Argument verwendet.
Für Iteratoren, die den wahlfreien Zugriff unterstützen nicht nur auto_partitioner unterstützt wird.
Die Überladungen, die das Argument akzeptieren _Unary_op Transformation den Eingabebereich Ausgabe in den Bereich, indem sie den unären Funktionselement zu jedem Element im Eingabebereich anwenden._Unary_op muss den Aufrufoperator mit Signatur operator()(T) unterstützen, in der T der Werttyp des Bereichs liegt, der durch durchlaufen wird.
Die Überladungen, die das Argument akzeptieren _Binary_op Transformation zwei Eingabebereiche Ausgabe in den Bereich, indem sie das binäre Funktionselement zu einem Element aus dem ersten Eingabebereich und ein Element aus dem zweiten Eingabebereich anwenden._Binary_op muss den Aufrufoperator mit Signatur operator()(T, U) unterstützen, in der T, U-Werttypen der beiden Eingabeiteratoren sind.
Weitere Informationen finden Sie unter Parallele Algorithmen.
Anforderungen
Header: ppl.h
Namespace: Parallelität