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
Une référence à l'objet de partitionneur.L'argument peut être un d' constauto_partitioner&, d' conststatic_partitioner&, d' constsimple_partitioner& ou d' affinity_partitioner& si un objet d' affinity_partitioner est utilisé, la référence doit être une référence non constante lvalue, afin que l'algorithme puisse stocker l'état pour que les futures boucles les réutilisent.
Notes
auto_partitioner sera utilisé pour la surcharge sans partitionneur explicite.
Pour les itérateurs qui ne prennent pas en charge l'accès aléatoire, uniquement auto_partitioner est pris en charge.
Pour plus d'informations, consultez Algorithmes parallèles.
Configuration requise
En-tête : ppl.h
Accès concurrentiel del'espace de noms :