parallel_transform-Funktion
Wendet ein angegebenes Funktionsobjekt auf jedes Element in einem Quellbereich oder auf ein Elementpaar aus zwei Quellbereichen an und kopiert die Rückgabewerte des Funktionsobjekts parallel in einen Zielbereich. Diese Funktion entspricht semantisch 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 auf allen Elementen im Eingabebereich Feature-Elements, ausgeführt werden._Input_iterator2
Der Typ des zweiten Eingabeiterators._Binary_operator
Der Typ von dem binäres Funktionselement ausgeführten paarweisen auf Elementen aus den beiden Quellbereichen._Partitioner
_First1
Ein Eingabeiterator, der die Position des ersten Elements in der ersten oder des Quellbereichs nur behandelt, ausgeführt gelassen werden._Last1
Ein Eingabeiterator, der die Position eine hinter dem letzten Element in der ersten oder nur Quellbereich behandelt, ausgeführt gelassen werden._Result
Ein Ausgabeiterator, der die Position des ersten Elements im Zielbereich behandelt._Unary_op
Ein benutzerdefiniertes unäres Funktionsobjekt, das jedem Element im Quellbereich angewendet wird._Part
Ein Verweis auf das Partitioniererobjekt. Das Argument kann einer von constauto_partitioner&, conststatic_partitioner&, const&simple_partitioner oder affinity_partitioner sein &, wenn ein Objekt verwendet affinity_partitioner, wird der Verweis muss ein nicht konstanter L-Werts-Verweis sein, sodass der Algorithmus Zustand speichern kann, dass zukünftige Schleifen wiederverwenden._First2
Ein Eingabeiterator, der die Position des ersten Elements im zweiten Quellbereich behandelt, ausgeführt gelassen werden._Binary_op
Ein benutzerdefiniertes binäres Funktionsobjekt, das, in einem Terminauftrag, auf den zwei Quellbereichen auf paarweises ist.
Rückgabewert
Ein Ausgabeiterator, der die Position eine hinter dem letzten Element im Zielbereich anspricht, der die Ausgabeelemente empfängt, Transformation vom Funktionsobjekt.
Hinweise
auto_partitioner wird für Überladungen ohne explizites Partitioniererargument verwendet.
Für Iteratoren, die nicht wahlfreien Zugriff unterstützen, nur die auto_partitioner unterstützt wird.
Die Überladungen, die das Argument _Unary_op annehmen, transformieren den Eingabebereich in den Ausgabebereich, indem den unären Funktionselement zu jedem Element im Eingabebereich anwenden. _Unary_op muss den Funktionsaufrufoperator mit Signatur operator()(T) unterstützen, in der T-Werttyp des Bereichs ist, der von durchlaufen wird.
Die Überladungen, die das Argument _Binary_op annehmen, transformieren zwei Eingabebereiche in den Ausgabebereich, indem dem binären Funktionselement zu einem Element im Eingabebereich ersten und einem zweiten Element im Eingabebereich anwenden. _Binary_op muss den Funktionsaufrufoperator mit Signatur operator()(T, U) unterstützen, in der T, U-Werttypen der zwei Eingabeiteratoren sind.
Weitere Informationen finden Sie unter Parallele Algorithmen.
Anforderungen
Header: ppl.h
Namespace: Parallelität