parallel_for_each, fonction
parallel_for_each applique une fonction spécifiée à chaque élément dans une plage, en parallèle. Elle est sémantiquement équivalente à la fonction for_each dans l'espace de noms std, mais l'itération des éléments est exécutée en parallèle et l'ordre d'itération n'est pas spécifié. L'argument _Func doit prendre en charge un opérateur d'appel de fonction de la forme operator()(T), où le paramètre T est le type d'élément du conteneur sur lequel l'itération est réalisée.
template <
typename _Iterator,
typename _Function
>
void parallel_for_each(
_Iterator_First,
_Iterator_Last,
const _Function& _Func
);
template <
typename _Iterator,
typename _Function,
typename _Partitioner
>
void parallel_for_each(
_Iterator_First,
_Iterator_Last,
const _Function& _Func,
_Partitioner&& _Part
);
Paramètres
_Iterator
Type de l'itérateur qui est utilisé pour itérer au sein du conteneur._Function
Type de la fonction qui sera appliquée à chaque élément dans la plage._Partitioner
_First
Itérateur qui adresse la position du premier élément à inclure dans l'itération parallèle._Last
Itérateur qui adresse la position suivant l'élément final à inclure dans l'itération parallèle._Func
Objet de fonction défini par l'utilisateur appliqué à chaque élément dans la plage._Part
Référence au partitioneur d'objet . L'argument peut être un de constauto_partitioner&, de conststatic_partitioner&, de constsimple_partitioner& ou de affinity_partitioner&. Si un objet affinity_partitioner est utilisé, la référence doit être une référence l-value non-const , de sorte que l'algorithme puisse signaler l'état des futures boucles de réutilisation.
Notes
auto_partitioner est utilisé pour la surcharge sans un partitioneur explicite.
Pour les itérateurs qui ne prennent pas en charge l'accès aléatoire, seul auto_partitioner est pris en charge.
Pour plus d'informations, consultez Algorithmes parallèles.
Configuration requise
En-tête : ppl.h
Espace de noms : concurrency