Sdílet prostřednictvím


parallel_buffered_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í až na to, že potřebuje O(n) další místo a vyžaduje výchozí inicializace řazené prvků.

template<
   typename _Random_iterator
>
inline void parallel_buffered_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End
);

template<
   typename _Allocator,
   typename _Random_iterator
>
inline void parallel_buffered_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End
);

template<
   typename _Allocator,
   typename _Random_iterator
>
inline void parallel_buffered_sort(
   const _Allocator& _Alloc,
   const _Random_iterator &_Begin,
   const _Random_iterator &_End
);

template<
   typename _Random_iterator,
   typename _Function
>
inline void parallel_buffered_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Func,
   const size_t _Chunk_size = 2048
);

template<
   typename _Allocator,
   typename _Random_iterator,
   typename _Function
>
inline void parallel_buffered_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Func,
   const size_t _Chunk_size = 2048
);

template<
   typename _Allocator,
   typename _Random_iterator,
   typename _Function
>
inline void parallel_buffered_sort(
   const _Allocator& _Alloc,
   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.

  • _Allocator
    Typ přidělování paměti kompatibilní STL.

  • _Function
    Typ 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í.

  • _Alloc
    Instance kompatibilní paměť přidělování STL.

  • _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

Vyžadují všechny přetížení n * sizeof(T) další místo, kde n je počet prvků seřazeny, a T je typ prvku.Ve většině případů bude parallel_buffered_sort zobrazit zlepšení výkonu nad parallel_sort, a používejte jej přes parallel_sort máte dostupné paměti.

Pokud nezadáte binární komparátoru std::less se používá jako výchozí, vyžaduje typ prvku provozovatel poskytnout operator<().

Pokud nezadáte přidělování typu nebo instance přidělování paměti STL std::allocator<T> slouží k přidělení vyrovnávací paměti.

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ů