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) , T, U是兩個輸入 iterator 的實值型別。
如需詳細資訊,請參閱 平行演算法。
需求
標頭: ppl.h
Namespace: 並行存取