Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 classificação baseada em comparar, instável, no local, exceto que ele precisa de O(n) espaço adicional e requer inicialização padrão para os elementos que estão sendo classificados.
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
);
Parâmetros
_Random_iterator
O tipo de iterador de intervalo de entrada._Allocator
O tipo de um alocador de memória compatível STL._Function
O tipo de comparador binário._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._Alloc
Uma instância de um alocador de memória compatível STL._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
Todas as sobrecargas exigem n * sizeof(T) espaço adicional, onde n é o número de elementos a serem classificados e T é o tipo de elemento.Na maioria dos casos parallel_buffered_sort mostrar uma melhoria no desempenho sobre parallel_sort, e você deve usá-lo pela parallel_sort se você tiver memória disponível.
Se você não fornecer um comparador binário std::less é usado como padrão, que requer o tipo de elemento fornecer o operador operator<().
Se você não fornecer um tipo de alocador ou ocorrência, o alocador de memória STL std::allocator<T> é usado para alocar o buffer.
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