Funkcja parallel_sort
Rozmieszcza elementy w określonym zakresie, do nondescending zamówienia lub zgodnie z kryterium sortowania określony przez predykatu dwuelementowego równolegle.Ta funkcja jest semantycznie podobny do std::sort w tym jest sortowanie oparte na porównywanie, niestabilny, w miejscu.
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
);
Parametry
_Random_iterator
Typ iteratora zakres wejściowy._Function
Typ Teoria porównanie binarne._Begin
Random access iteratora adresowania pozycja pierwszego elementu w zakresie sortowania._End
Random access iteratora adresowania jedną pozycję w przeszłości końcowy element w zakresie sortowania._Func
Obiekt predykatu funkcję zdefiniowaną przez użytkownika, który definiuje kryterium Porównanie, które mają być spełnione przez kolejne elementy w kolejności.Predykatu dwuelementowego ma dwa argumenty i zwraca true po stwierdzeniu i false , gdy nie są spełnione.Ta funkcja komparatorze muszą nałożyć ścisłe słabe zamawiania na parach elementów z sekwencji._Chunk_size
Rozmiar mimimum fragmentu, który ma zostać podzielony na dwa równoległe wykonywanie.
Uwagi
Używa pierwszego przeciążenie binarne porównawczych std::less.
Drugi przeciążony zastosowań dostarczony binarne komparatorze, która powinna mieć podpis bool _Func(T, T) gdzie T jest typu elementów w zakresie wejściowym.
Algorytm zakresu wejściowego są podzielone na dwa kawałki i kolejno każdego fragmentu są podzielone na dwie sub-chunks wykonywanie równolegle.Opcjonalny argument _Chunk_size można wskazać algorytm powinny obsługi kawałki rozmiaru < _Chunk_sizepojedynczo.
Wymagania
Nagłówek: ppl.h
Obszar nazw: współbieżności