parallel_transform işlevi
Belirtilen işlev nesnenin kaynak aralıktaki her öğe veya öğeleri çiftinin iki kaynak aralıklardaki uygular ve paralel bir hedef aralığı işlevi nesnenin dönüş değerleri kopyalar. Bu işlev bir anlam olarak eşdeğer 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
);
Parametreler
_Input_iterator1
İlk veya yalnızca giriş Yineleyici türü._Output_iterator
Çıkış Yineleyici türü._Unary_operator
Her öğe giriş aralığındaki yürütülecek tekli functor türü._Input_iterator2
İkinci giriş Yineleyici türü._Binary_operator
İkili iki kaynak aralıklardaki öğeler üzerinde yürütülen ikili functor türü._Partitioner
_First1
İlk öğenin konumunu ilk veya kaynak aralığı üzerinde işletilen adresleme giriş Yineleyici._Last1
Bir giriş Yineleyici konumu bir önceki son öğe üzerinde işletilen ilk veya kaynak aralığı adresleme._Result
Hedef aralıkta ilk öğenin konumunu adresleme çıktı Yineleyici._Unary_op
Kaynak aralığındaki her öğesine uygulanan kullanıcı tanımlı tekli işlevi nesnesi._Part
Partitioner nesnesine bir başvuru. Bağımsız biri olabilir constauto_partitioner&, conststatic_partitioner&, constsimple_partitioner& veya affinity_partitioner& , bir affinity_partitioner nesnesi kullanıldığında, algoritma gelecekteki döngüleri yeniden kullanmak için durumu saklayabilmeniz const l-değeri başvuru, başvuru olmalıdır._First2
Üzerinde çalışması için ikinci kaynak aralığındaki ilk öğenin konumunu adresleme bir giriş Yineleyici._Binary_op
İkili, iki kaynak aralığı için ileriye doğru sırayla uygulanan ikili işlevi kullanıcı tanımlı bir nesne.
Dönüş Değeri
Position işlevi nesnesi tarafından dönüştürülmüş çıktı öğeleri alma hedef aralıktaki son öğe geçmiş adresleme çıktı Yineleyici.
Notlar
auto_partitioner açık partitioner bağımsız olmayanları için kullanılır.
Yineleyicilerde desteklemeyen rasgele erişim, yalnızca için auto_partitioner desteklenir.
Bağımsız değişkeni aşırı _Unary_op girdi aralığının giriş aralığındaki her öğe için tekli functor uygulayarak çıkış aralığına dönüştürme. _Unary_opişlev çağrısı işleci ile imza desteklemelidir operator()(T) burada T üzerinden iterated aralık değer türüdür.
Bağımsız değişkeni aşırı _Binary_op ilk giriş aralığı ve ikinci giriş aralığını bir öğeden öğeye ikili functor uygulayarak çıkış aralığına iki giriş aralığı dönüştürme. _Binary_opişlev çağrısı işleci ile imza desteklemelidir operator()(T, U) burada T, U iki giriş Yineleyicilerde değer türleri şunlardır.
Daha fazla bilgi için bkz. Paralel algoritmalar.
Gereksinimler
Başlık: ppl.h
Namespace: eşzamanlılık