Partager via


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 :

Voir aussi

Référence

concurrency, espace de noms