Função de parallel_sort
Organiza os elementos em um intervalo especificado em uma ordem de nondescending ou de acordo com um critério de classificação especificada por um predicado binário, em paralelo.Esta função é semanticamente similar ao std::sort que é uma espécie de comparar instável, baseada no local.
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
);
Parâmetros
_Random_iterator
O tipo de iterador de intervalo de entrada._Function
O tipo de functor comparação binária._Begin
Um iterador de acesso aleatório a posição do primeiro elemento no intervalo de endereçamento a ser classificado._End
Um iterador de acesso aleatório endereçamento posição um após o elemento final do intervalo a ser classificado._Func
Um objeto de função de predicado definida pelo usuário que define o critério de comparação para ser atendida por elementos sucessivos na ordem.Um predicado binário leva dois argumentos e retorna true quando satisfeita e false quando não atendida.Esta função comparador deve impor uma ordem fraca estrita em pares de elementos da seqüência._Chunk_size
O tamanho mínimo de um bloco que será dividido em dois para execução em paralelo.
Comentários
A primeira sobrecarga usa o comparador binário std::less.
O segundo sobrecarregado usa o comparador binário fornecido que deve ter a assinatura bool _Func(T, T) onde T é o tipo de elementos no intervalo de entrada.
O algoritmo divide o intervalo de entrada em duas partes e sucessivamente divide cada bloco em dois sub-chunks para execução em paralelo.O argumento opcional _Chunk_size pode ser usado para indicar o algoritmo que deve lida com blocos de tamanho < _Chunk_sizeem série.
Requisitos
Cabeçalho: ppl.h
Namespace: concorrência