parallel_buffered_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 c'est un tri sur place, basé sur la comparaison, instable, sauf qu'elle a besoin d'espace supplémentaire pour O(n), et nécessite une initialisation par défaut pour que les éléments soient triés.
template<
typename _Random_iterator
>
inline void parallel_buffered_sort(
const _Random_iterator &_Begin,
const _Random_iterator &_End
);
template<
typename _Allocator,
typename _Random_iterator
>
inline void parallel_buffered_sort(
const _Random_iterator &_Begin,
const _Random_iterator &_End
);
template<
typename _Allocator,
typename _Random_iterator
>
inline void parallel_buffered_sort(
const _Allocator& _Alloc,
const _Random_iterator &_Begin,
const _Random_iterator &_End
);
template<
typename _Random_iterator,
typename _Function
>
inline void parallel_buffered_sort(
const _Random_iterator &_Begin,
const _Random_iterator &_End,
const _Function &_Func,
const size_t _Chunk_size = 2048
);
template<
typename _Allocator,
typename _Random_iterator,
typename _Function
>
inline void parallel_buffered_sort(
const _Random_iterator &_Begin,
const _Random_iterator &_End,
const _Function &_Func,
const size_t _Chunk_size = 2048
);
template<
typename _Allocator,
typename _Random_iterator,
typename _Function
>
inline void parallel_buffered_sort(
const _Allocator& _Alloc,
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._Allocator
Le type d'un allocateur de mémoire compatible STL._Function
Le type du comparateur binaire._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._Alloc
Une instance d'un allocateur de mémoire compatible STL._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 et 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 de mimimum d'un segment qui est coupé en deux pour une exécution parallèle.
Notes
Toutes les surcharges nécessitent de l'espace supplémentaire n * sizeof(T), où n est le nombre d'éléments à trier et T est le type des éléments. Dans la plupart des cas le parallel_buffered_sort affichera une amélioration des performances sur parallel_sort, et vous devriez l'utiliser sur le parallel_sort si vous disposez de mémoire disponible.
Si vous ne fournissez pas un comparateur binaire std::less est utilisée comme valeur par défaut, ce qui exige le type de l'élément pour fournir l'opérateur operator<().
Si vous ne fournissez pas un type d'allocateur ou une instance, l'allocateur de mémoire STL std::allocator<T> est utilisée pour allouer de la mémoire tampon.
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