Funkcja parallel_transform
Stosuje się obiekt określonej funkcji, każdy element w zakres źródłowy lub para elementów z dwóch zakresów źródłowych i kopiuje wartości zwracane funkcji obiekt do zakresu docelowego, równolegle.Tej funkcjonalności jest semantycznie równoważne 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 pierwszego lub tylko wejściowego iteratora._Output_iterator
Typ iteratora danych wyjściowych._Unary_operator
Typ Teoria jednoargumentowe mają być wykonane na każdy element w zakresie wejściowym._Input_iterator2
Typ iteratora wejściowy drugiej._Binary_operator
Typ binarny Teoria pairwise wykonane na elementach z zakresów źródłowych dwóch._Partitioner
_First1
Wejściowy iteratora położenie pierwszego elementu w pierwszym lub tylko zakres źródłowy ma być obsługiwany na adresowania._Last1
Wejściowy iteratora adresowania położenie jednego w przeszłości końcowy element w pierwszej lub tylko zakres źródłowy ma być obsługiwany na._Result
Iterację wyjście adresowania położenie pierwszego elementu w zakresie docelowym._Unary_op
Obiekt funkcji jednoargumentowe zdefiniowane przez użytkownika, stosowany do każdego elementu w zakresie źródłowym._Part
Odwołanie do obiektu go.Argument może być jednym z constauto_partitioner&, conststatic_partitioner&, constsimple_partitioner& lub affinity_partitioner& Jeśli affinity_partitioner obiekt jest używany, odniesienia muszą być odwołanie nie const l wartość, tak aby algorytm można przechowywać stan dla przyszłych pętli do ponownego wykorzystania._First2
Wejściowy iterację adresowania położenie pierwszego elementu w drugi zakres źródłowy ma być obsługiwany na._Binary_op
Obiekt binarny funkcję zdefiniowaną przez użytkownika, pairwise, stosowany w kolejności do przodu, do dwóch zakresów.
Wartość zwracana
Adresowanie jedną pozycję w przeszłości końcowy element w zakresie docelowym, która odbiera elementy danych wyjściowych przez obiekt funkcji iterację danych wyjściowych.
Uwagi
auto_partitioner będzie używany dla overloads bez argumentu jawne go.
Dla Iteratory, które nie obsługują losowy dostęp tylko auto_partitioner jest obsługiwany.
Overloads, które argument _Unary_op przekształcić zakres wyjściowy zakres wejściowy stosując Teoria jednoargumentowe do każdego elementu w zakresie wejściowym._Unary_opoperator wywołania funkcji z podpisem, musi obsługiwać operator()(T) gdzie T jest typem wartości zakresu są podstawy nad.
Overloads, które argument _Binary_op przekształcić zakres wyjściowy dwa zakresy wejściowy stosując binarne Teoria jeden element z pierwszego zakresu wejściowego i jeden element z drugiego zakresu wejściowego._Binary_opoperator wywołania funkcji z podpisem, musi obsługiwać operator()(T, U) gdzie T, U są typy wartości dwóch Iteratory wejściowe.
Aby uzyskać więcej informacji, zobacz Algorytmy równoległe.
Wymagania
Nagłówek: ppl.h
Obszar nazw: współbieżności