Sdílet prostřednictvím


parallel_sort – funkce

Uspořádá prvky v určeném rozsahu do nondescending pořadí nebo podle řazení kritérium, podle binárního predikátu, paralelně.Tato funkce je sémanticky podobné std::sort v tom, že je porovnání založeno, nestabilní, v místě řazení.

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 iterační vstupní oblasti.

  • _Function
    Typ functor binární porovnání.

  • _Begin
    Náhodný přístup iterační adresování pozici první prvek v rozsahu řazení.

  • _End
    Náhodný přístup iterační adresování jednu pozici za poslední prvek v rozsahu řazení.

  • _Func
    Uživatelem definované funkce predikátu objektu, který definuje kritéria porovnání vyhovět následné prvky v pořadí.Binárního predikátu trvá dva argumenty a vrátí true při splněny a false Pokud není splněna.Tato funkce komparátoru musí ukládat přísné slabé řazení páry z pořadí prvků.

  • _Chunk_size
    Minimální velikost bloku dat, která rozdělí na dvě paralelní spuštění.

Poznámky

Používá první přetížení binární porovnání std::less.

Druhý přetížení používá zadané binární porovnání, který by měl mít podpis bool _Func(T, T) kde T je typ prvků ve vstupní oblasti.

Algoritmus vstupní oblast rozdělí na dva bloky a každý blok postupně rozdělí na dvě sub-chunks pro spuštění paralelně.Nepovinný argument _Chunk_size lze použít algoritmus označíte, že by zpracovává bloky velikosti < _Chunk_sizesériově.

Požadavky

Záhlaví: ppl.h

Obor názvů: souběžnosti

Viz také

Referenční dokumentace

concurrency – obor názvů