parallel_radixsort — Funkcja
Rozmieszcza elementy w określonym zakresie zamówienia nie malejącej za pomocą radix, algorytm sortowania.Jest to funkcja sortowania stabilne, które wymaga funkcji projekcji, który można elementy mają być sortowane w niepodpisane kluczy typu integer programu project.Inicjowanie domyślny jest wymagane elementy są sortowane.
template<
typename _Random_iterator
>
inline void parallel_radixsort(
const _Random_iterator &_Begin,
const _Random_iterator &_End
);
template<
typename _Allocator,
typename _Random_iterator
>
inline void parallel_radixsort(
const _Random_iterator &_Begin,
const _Random_iterator &_End
);
template<
typename _Allocator,
typename _Random_iterator
>
inline void parallel_radixsort(
const _Allocator& _Alloc,
const _Random_iterator &_Begin,
const _Random_iterator &_End
);
template<
typename _Random_iterator,
typename _Function
>
inline void parallel_radixsort(
const _Random_iterator &_Begin,
const _Random_iterator &_End,
const _Function &_Proj_func,
const size_t _Chunk_size = 256 * 256
);
template<
typename _Allocator,
typename _Random_iterator,
typename _Function
>
inline void parallel_radixsort(
const _Random_iterator &_Begin,
const _Random_iterator &_End,
const _Function &_Proj_func,
const size_t _Chunk_size = 256 * 256
);
template<
typename _Allocator,
typename _Random_iterator,
typename _Function
>
inline void parallel_radixsort(
const _Allocator& _Alloc,
const _Random_iterator &_Begin,
const _Random_iterator &_End,
const _Function &_Proj_func,
const size_t _Chunk_size = 256 * 256
);
Parametry
_Random_iterator
Typ iteratora zakres wejściowy._Allocator
Typ programu przydzielania pamięci zgodnego STL._Function
Typ funkcji rzutowania._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._Alloc
Wystąpienie programu przydzielania pamięci zgodnego STL._Proj_func
Obiekt funkcji rzut zdefiniowane przez użytkownika, który konwertuje integralną wartość elementu._Chunk_size
Rozmiar mimimum fragmentu, który ma zostać podzielony na dwa równoległe wykonywanie.
Uwagi
Wszystkie overloads wymagają n * sizeof(T) dodatkowe miejsce, gdzie n jest liczba elementów, które mają być sortowane i T jest typ elementu.Teoria rzut jednoargumentowe z podpisemI _Proj_func(T) jest wymagane, aby powrócić do klucza, gdy element, gdzie T jest typ elementu i I jest niepodpisany typu integer podobne.
Jeśli nie podasz funkcji rzut domyślnej funkcji rzutowania, która po prostu zwraca element jest używana dla typów integralną.Funkcja nie będzie można skompilować, jeśli element nie jest typem całkowitym w przypadku braku funkcji projekcji.
Jeśli nie podasz typu programu przydzielania lub instancji, program przydzielania pamięci STL std::allocator<T> jest używana do alokacji buforu.
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