Compartilhar via


Função parallel_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 é um tipo comparar- baseado, instável, in-loco.

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 do intervalo de entrada.

  • _Function
    O tipo de funtor binária de comparação.

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

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

A primeira sobrecarga usa o comparador binário std::less.

A segunda usa sobrecarregados o comparador binário que fornecido deve ter a assinatura bool _Func(T, T) onde T é o tipo dos elementos no intervalo de entrada.

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

Consulte também

Referência

Namespace Concurrency