Condividi tramite


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:

Vedere anche

Riferimenti

Spazio dei nomi concurrency