Partager via


parallel_sort, fonction

Réorganise les éléments dans une plage spécifiée dans un ordre nondescending, ou selon un critère de classement spécifié par un attribut binaire, en parallèle.Cette fonction est sémantiquement semblable à std::sort car il s'agit d'un tri comparer-basé, instable, sur place.

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
    Le type d'itérateur de la plage d'entrée.

  • _Function
    Le type du functor binaire de comparaison.

  • _Begin
    Un itérateur d'accès aléatoire adressant la position du premier élément de la plage à trier.

  • _End
    Un itérateur d'accès aléatoire adressant la position une au delà de le dernier élément dans la plage à trier.

  • _Func
    Un objet défini par l'utilisateur de fonction de prédicat qui définit le critère de comparaison à répondre par des éléments consécutifs dans l'ordre.Un attribut binaire accepte deux arguments et retourne true si satisfaisant et false lorsqu'il est satisfait.Cette fonction de comparateur doit appliquer le classement faible strict aux paires d'éléments de la séquence.

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

Notes

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

Les deuxième utilise surchargées le comparateur fourni binaire qui doit posséder la signature bool _Func(T, T)T est le 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 Sub-segments pour une exécution en parallèle.L'argument facultatif _Chunk_size peut être utilisé pour indiquer à l'algorithme qu'il doit des segments de handles de < _Chunk_size de taille séquentiel.

Configuration requise

En-tête : ppl.h

Accès concurrentiel del'espace de noms :

Voir aussi

Référence

concurrency, espace de noms