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