Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A concurrent_priority_queue classe é um contêiner que permite que vários threads enviem e pop simultaneamente itens. Os itens são exibidos em ordem de prioridade, onde a prioridade é determinada por um functor fornecido como um argumento de modelo.
Sintaxe
template <typename T,
typename _Compare = std::less<T>,
typename _Ax = std::allocator<T>>
class concurrent_priority_queue;
Parâmetros
T
O tipo de dados dos elementos a serem armazenados na fila de prioridade.
_Compare
O tipo do objeto de função que pode comparar dois valores de elemento como chaves de classificação para determinar sua ordem relativa na fila de prioridade. Esse argumento é opcional e o predicado less<T> binário é o valor padrão.
_Ax
O tipo que representa o objeto de alocador armazenado que encapsula detalhes sobre a alocação e desalocação de memória para a fila de prioridade simultânea. Esse argumento é opcional e o valor padrão é allocator<T>.
Membros
Typedefs Públicos
| Nome | Descrição |
|---|---|
allocator_type |
Um tipo que representa a classe de alocador para a fila de prioridade simultânea. |
const_reference |
Um tipo que representa uma referência const a um elemento do tipo armazenado em uma fila de prioridade simultânea. |
reference |
Um tipo que representa uma referência a um elemento do tipo armazenado em uma fila de prioridade simultânea. |
size_type |
Um tipo que conta o número de elementos em uma fila de prioridade simultânea. |
value_type |
Um tipo que representa o tipo de dados armazenados em uma fila de prioridade simultânea. |
Construtores Públicos
| Nome | Descrição |
|---|---|
| concurrent_priority_queue | Sobrecarregado. Constrói uma fila de prioridade simultânea. |
Métodos Públicos
| Nome | Descrição |
|---|---|
| claro | Apaga todos os elementos da prioridade simultânea. Este método não é seguro para simultaneidade. |
| vazio | Testa se a fila de prioridade simultânea está vazia no momento em que esse método é chamado. Este método é seguro para simultaneidade. |
| get_allocator | Retorna uma cópia do alocador usado para construir a fila de prioridade simultânea. Este método é seguro para simultaneidade. |
| empurrar | Sobrecarregado. Adiciona um elemento à fila de prioridade simultânea. Este método é seguro para simultaneidade. |
| tamanho | Retorna o número de elementos na fila de prioridade simultânea. Este método é seguro para simultaneidade. |
| trocar | Troca o conteúdo de duas filas de prioridade simultâneas. Este método não é seguro para simultaneidade. |
| try_pop | Remove e retorna o elemento de prioridade mais alta da fila se a fila não estiver vazia. Este método é seguro para simultaneidade. |
Operadores Públicos
| Nome | Descrição |
|---|---|
| operador= | Sobrecarregado. Atribui o conteúdo de outro concurrent_priority_queue objetar a este. Este método não é seguro para simultaneidade. |
Observações
Para obter informações detalhadas sobre a classe concurrent_priority_queue, consulte Parallel Containers and Objects.
Hierarquia de herança
concurrent_priority_queue
Requerimentos
Cabeçalho: concurrent_priority_queue.h
Namespace: simultaneidade
limpar
Apaga todos os elementos da prioridade simultânea. Este método não é seguro para simultaneidade.
void clear();
Observações
clear não é seguro para simultaneidade. Você deve garantir que nenhum outro thread esteja invocando métodos na fila de prioridade simultânea quando você chamar esse método.
clear não liberta memória.
concurrent_priority_queue
Constrói uma fila de prioridade simultânea.
explicit concurrent_priority_queue(
const allocator_type& _Al = allocator_type());
explicit concurrent_priority_queue(
size_type _Init_capacity,
const allocator_type& _Al = allocator_type());
template<typename _InputIterator>
concurrent_priority_queue(_InputIterator _Begin,
_InputIterator _End,
const allocator_type& _Al = allocator_type());
concurrent_priority_queue(
const concurrent_priority_queue& _Src);
concurrent_priority_queue(
const concurrent_priority_queue& _Src,
const allocator_type& _Al);
concurrent_priority_queue(
concurrent_priority_queue&& _Src);
concurrent_priority_queue(
concurrent_priority_queue&& _Src,
const allocator_type& _Al);
Parâmetros
_InputIterator
O tipo do iterador de entrada.
_Al
A classe de alocador a ser usada com esse objeto.
_Init_capacity
A capacidade inicial do concurrent_priority_queue objeto.
_Begin
A posição do primeiro elemento na gama de elementos a serem copiados.
_End
A posição do primeiro elemento além da gama de elementos a serem copiados.
_Src
A origem concurrent_priority_queue objeto do qual copiar ou mover elementos.
Observações
Todos os construtores armazenam um objeto _Al alocator e inicializam a fila de prioridades.
O primeiro construtor especifica uma fila de prioridade inicial vazia e, opcionalmente, especifica um alocador.
O segundo construtor especifica uma fila de prioridade com uma capacidade _Init_capacity inicial e, opcionalmente, especifica um alocador.
O terceiro construtor especifica valores fornecidos pelo intervalo do iterador [ _Begin, ) e, opcionalmente, _Endespecifica um alocador.
O quarto e quinto construtores especificam uma cópia da fila _Srcde prioridades.
O sexto e sétimo construtores especificam um movimento da fila _Srcde prioridade.
vazio
Testa se a fila de prioridade simultânea está vazia no momento em que esse método é chamado. Este método é seguro para simultaneidade.
bool empty() const;
Valor de retorno
true se a fila de prioridade estava vazia no momento em que a função foi chamada, false caso contrário.
get_allocator
Retorna uma cópia do alocador usado para construir a fila de prioridade simultânea. Este método é seguro para simultaneidade.
allocator_type get_allocator() const;
Valor de retorno
Uma cópia do alocador usado para construir o concurrent_priority_queue objeto.
operador=
Atribui o conteúdo de outro concurrent_priority_queue objetar a este. Este método não é seguro para simultaneidade.
concurrent_priority_queue& operator= (const concurrent_priority_queue& _Src);
concurrent_priority_queue& operator= (concurrent_priority_queue&& _Src);
Parâmetros
_Src
A origem concurrent_priority_queue objeto.
Valor de retorno
Uma referência a isso concurrent_priority_queue objeto.
empurrar
Adiciona um elemento à fila de prioridade simultânea. Este método é seguro para simultaneidade.
void push(const value_type& _Elem);
void push(value_type&& _Elem);
Parâmetros
_Elem
O elemento a ser adicionado à fila de prioridade simultânea.
tamanho
Retorna o número de elementos na fila de prioridade simultânea. Este método é seguro para simultaneidade.
size_type size() const;
Valor de retorno
O número de elementos neste concurrent_priority_queue objeto.
Observações
O tamanho retornado é garantido para incluir todos os elementos adicionados por chamadas para a função push. No entanto, pode não refletir os resultados de operações simultâneas pendentes.
permuta
Troca o conteúdo de duas filas de prioridade simultâneas. Este método não é seguro para simultaneidade.
void swap(concurrent_priority_queue& _Queue);
Parâmetros
_Queue
O concurrent_priority_queue objeto com o qual trocar conteúdo.
try_pop
Remove e retorna o elemento de prioridade mais alta da fila se a fila não estiver vazia. Este método é seguro para simultaneidade.
bool try_pop(reference _Elem);
Parâmetros
_Elem
Uma referência a uma variável que será preenchida com o elemento de prioridade mais alta, se a fila não estiver vazia.
Valor de retorno
true se um valor foi exibido, false caso contrário.