Função parallel_buffered_sort
Organiza os elementos em um intervalo especificado em uma ordem nondescending, de acordo com um critério especificado por ordenando um predicado binário, em paralelo. Essa função é semanticamente similar a std::sort que é baseado comparar-, instável, o tipo in-loco exceto que precisam de espaço adicional de O(n) , e requerem a 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 do intervalo de entrada._Allocator
O tipo de um alocador de correspondência de memória STL._Function
O tipo de comparador binário._Begin
Um iterador de acesso aleatório que trata a posição do primeiro elemento no intervalo ser classificada._End
Um iterador de acesso aleatório que trata a posição uma depois do elemento final no intervalo ser classificada._Alloc
Uma instância de um alocador de correspondência de memória STL._Func
Um objeto definido pelo usuário da função de predicado que define o critério de comparação a ser atendido pelos elementos sucessivas na ordenação. Um predicado binário usa dois argumentos e retorna true quando estiver satisfeito e false quando não estiver satisfeito. Essa função de comparador deve impor a ordenação fraco restrito em pares de elementos de sequência._Chunk_size
O tamanho de mimimum de uma parte que é dividida em dois para execução paralela.
Comentários
Todas as sobrecargas exigem espaço adicional de n * sizeof(T) , onde n é o número de elementos a serem classificados, e T é o tipo de elemento. Na maioria dos casos parallel_buffered_sort o mostrará uma melhoria no desempenho em parallel_sort, e você deve usá-la no parallel_sort se você tiver a memória disponível.
Se você não fornecer um comparador std::less binária é usado como padrão, que requer o tipo de elemento fornecer o operador operator<().
Se você não fornecer um tipo ou uma instância do alocador, o alocador std::allocator<T> de memória STL é usada para atribuir o buffer.
O algoritmo divide o intervalo de entrada em duas partes e divide por cada parte secundária em duas partes para execução em paralelo. O argumento opcional _Chunk_size pode ser usado para indicar ao algoritmo que ele deve partes das alças de tamanho <_Chunk_size em série.
Requisitos
Cabeçalho: ppl.h
Namespace: simultaneidade