parallel_transform 函式

在來源範圍中,每個項目或項目的配對,從兩個來源範圍,會套用指定的函式物件,並會傳回值的函式物件複製到目的範圍,以平行方式。 此功能是語意上等於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
);

參數

  • _Input_iterator1
    第一個或只輸入的 iterator 的型別。

  • _Output_iterator
    輸出 iterator 型別。

  • _Unary_operator
    若要在輸入範圍內的每個項目上執行一元 (unary) functor 型別。

  • _Input_iterator2
    第二個輸入 iterator 型別。

  • _Binary_operator
    二進位的 functor 執行配對上兩個來源範圍中的項目型別。

  • _Partitioner

  • _First1
    輸入的 iterator,定址中第一個或只掃描來源範圍來操作上的第一個元素的位置。

  • _Last1
    輸入的 iterator,定址位置 1 過去的最後一個項目中的第一個或只是來源範圍來操作。

  • _Result
    輸出 iterator 定址目的範圍中的第一個項目位置。

  • _Unary_op
    使用者定義一元 (unary) 函式的物件套用至每個來源範圍中的項目。

  • _Part
    Partitioner 物件參考。 引數可為任一constauto_partitioner&conststatic_partitioner&constsimple_partitioner**&affinity_partitioner&**如果 affinity_partitioner 物件,則參照來源必須非常值 (l-value) 的參考,如此演算法可以儲存的未來的迴圈,以重複使用的狀態。

  • _First2
    輸入的 iterator 定址中的第二個來源範圍的第一個元素的位置來操作。

  • _Binary_op
    使用者定義二進位的函式物件配對,套用依轉寄順序,兩個來源範圍。

傳回值

輸出 iterator 定址過去的目標範圍,而該函式物件由轉換的輸出項目內的最後一個元素的其中一個位置。

備註

auto_partitioner 會被用於沒有明確的 partitioner 引數的多載。

Iterator 不支援隨機存取,請只對 auto_partitioner 支援。

使用引數的多載_Unary_op轉換成輸出範圍的輸入的範圍,藉由輸入範圍內的每一個項目套用一元 (unary) functor。 _Unary_op必須支援函式呼叫運算子具有簽章operator()(T)T的實值型別所反覆查看過的範圍。

使用引數的多載_Binary_op轉換成輸出範圍的兩個輸入的範圍,藉由套用至一個項目二進位的 functor,從第一個輸入的範圍,並從第二個輸入範圍的一個項目。 _Binary_op必須支援函式呼叫運算子具有簽章operator()(T, U)TU是兩個輸入 iterator 的實值型別。

如需詳細資訊,請參閱 平行演算法

需求

標頭: ppl.h

Namespace: 並行存取

請參閱

參考

concurrency 命名空間