Partager via


parallel_sort, fonction

Organise les éléments dans une plage spécifiée dans un ordre non décroissant, ou selon un critère de classement spécifié par un prédicat binaire, en parallèle. Cette fonction est sémantiquement semblable à std::sort car il s'agit d'un tri sur place, instable et basé sur la comparaison.

template<
   typename _Random_iterator
>
inline void parallel_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End
);

template<
   typename _Random_iterator,
   typename _Function
>
inline void parallel_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Func,
   const size_t _Chunk_size = 2048
);

Paramètres

  • _Random_iterator
    Type d'itérateur de la plage d'entrée.

  • _Function
    Le type de du functor binaire de comparaison.

  • _Begin
    Un itérateur à accès aléatoire qui adresse la position du premier élément dans la plage de tri.

  • _End
    Un itérateur à accès aléatoire qui adresse la position un après l'élément final dans la plage de tri.

  • _Func
    Un objet de la fonction de prédicat définie par l'utilisateur qui définit les critères de comparaison à satisfaire par des éléments consécutifs dans un ordre. Un prédicat binaire a besoin de deux arguments. Il renvoie true lorsqu'il est satisfait et false dans le cas contraire. Cette fonction de comparateur doit appliquer le caractère strict des paires d'éléments de la séquence.

  • _Chunk_size
    La taille mimimum d'un segment qui est coupé en deux pour une exécution parallèle.

Notes

La première surcharge utilise le comparateur binaire std::less.

La seconde surcharge utilise le comparateur binaire fourni qui doit être signé bool _Func(T, T)T correspond au type des éléments dans la plage d'entrée.

L'algorithme divise la plage d'entrée en deux segments et divise successivement chaque segment en deux sous-segments pour l'exécution en parallèle. L'argument facultatif _Chunk_size peut être utilisé pour indiquer à l'algorithme qu'il doit manipuler des segments de descripteurs de taille < _Chunk_size séquentiel.

Configuration requise

En-tête : ppl.h

Espace de noms : concurrency

Voir aussi

Référence

concurrency, espace de noms