Funzione parallel_sort
Dispone gli elementi in un intervallo specificato in un ordine nondescending, o in base a un criterio di ordinamento specificato da un predicato binario, in parallelo.Questa funzione è semanticamente simile a std::sort in quanto si tratta di un ordinamento basato confrontare, instabilità, sul posto.
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
);
Parametri
_Random_iterator
Il tipo di iteratore dell'intervallo di input._Function
Il tipo di functor binario di confronto._Begin
Un iteratore di accesso casuale destinato alla posizione del primo elemento nell'intervallo da ordinare._End
Un iteratore di accesso casuale destinato alla posizione una dopo l'elemento finale nell'intervallo da ordinare._Func
Un oggetto definito dall'utente di funzione di predicato che definisce i criteri di confronto da soddisfare gli elementi successivi in ordine.Un predicato binario accetta due argomenti e restituisce true una volta soddisfatti e false una volta non soddisfatta.Questa funzione di criteri di confronto necessario imporre un ordine debole rigido a coppie di elementi dalla sequenza._Chunk_size
La dimensione di mimimum di un blocco che verrà suddiviso in due per l'esecuzione parallela.
Note
Il primo overload utilizza il criteri di confronto binario std::less.
I secondi viene utilizzato l'overload di l criteri di confronto binario fornito deve disporre della firma bool _Func(T, T) in cui T è il tipo degli elementi nell'intervallo di input.
L'algoritmo divide l'intervallo di input in due blocchi e successivamente suddivide ogni blocco in due sottomarino-blocchi per l'esecuzione in parallelo.L'argomento facoltativo _Chunk_size può essere utilizzato per indicare all'algoritmo che deve blocchi di handle di < _Chunk_size di dimensione seriale.
Requisiti
Header: ppl.h
Concorrenza diSpazio dei nomi: