Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A classe concurrent_priority_queue é um contêiner que permite que vários threads enviem itens por push e removam o item mais recente da pilha ao mesmo tempo. Os itens são exibidos na ordem de prioridade em que 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.
_Comparar
O tipo do objeto de função que pode comparar dois valores de elemento como chaves de classificação para determinar sua ordem relativa no priority_queue. Esse argumento é opcional e o predicado binário less<T> é o valor padrão.
_Machado
O tipo que representa o objeto alocador armazenado que encapsula detalhes sobre a alocação e a desalocação de memória da fila de prioridades simultâneas. 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 allocator para a fila de prioridades simultâneas. |
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 prioridades simultâneas. |
value_type |
Um tipo que representa o tipo de dados armazenado em uma fila de prioridades simultâneas. |
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 na prioridade simultânea. Esse 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. Esse método é seguro para simultaneidade. |
| get_allocator | Retorna uma cópia do alocador usado para construir a fila de prioridades simultâneas. Esse método é seguro para simultaneidade. |
| empurrar | Sobrecarregado. Adiciona um elemento à fila de prioridades simultâneas. Esse método é seguro para simultaneidade. |
| tamanho | Retorna o número de elementos na fila de prioridades simultâneas. Esse método é seguro para simultaneidade. |
| troca | Troca o conteúdo de duas filas de prioridades simultâneas. Esse 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 está vazia. Esse método é seguro para simultaneidade. |
Operadores públicos
| Nome | Descrição |
|---|---|
| operador = | Sobrecarregado. Atribui o conteúdo de outro objeto concurrent_priority_queue a este. Esse método não é seguro para simultaneidade. |
Comentários
Para obter informações detalhadas sobre a classe concurrent_priority_queue, confira Contêineres e objetos paralelos.
Hierarquia de herança
concurrent_priority_queue
Requisitos
Cabeçalho: concurrent_priority_queue.h
Namespace: simultaneidade
claro
Apaga todos os elementos na prioridade simultânea. Esse método não é seguro para simultaneidade.
void clear();
Comentários
clear não é concurrency-safe. Você deve garantir que nenhum outro thread está invocando métodos na fila de prioridade simultânea ao chamar esse método.
clear não libera 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 objeto concurrent_priority_queue.
_Começar
A posição do primeiro elemento no intervalo de elementos a serem copiados.
_Fim
A posição do primeiro elemento além do intervalo de elementos a serem copiados.
_Src
O objeto concurrent_priority_queue de origem do qual copiar ou mover elementos.
Comentários
Todos os construtores armazenam um objeto allocator _Al 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 inicial de _Init_capacity e, opcionalmente, especifica um alocador.
O terceiro construtor especifica valores fornecidos pelo intervalo de iterador [ _Begin, _End) e, opcionalmente, especifica um alocador.
O quarto e o quinto construtor especificam uma cópia de _Src da fila de prioridades.
O sexto e o sétimo construtores especificam uma movimentação da fila de prioridades _Src.
vazio
Testa se a fila de prioridade simultânea está vazia no momento em que esse método é chamado. Esse método é seguro para simultaneidade.
bool empty() const;
Valor de retorno
true se a fila de prioridades estava vazia no momento em que a função foi chamada; caso contrário, false.
get_allocator
Retorna uma cópia do alocador usado para construir a fila de prioridades simultâneas. Esse método é seguro para simultaneidade.
allocator_type get_allocator() const;
Valor de retorno
Uma cópia do alocador usado para construir o objeto concurrent_priority_queue.
operator=
Atribui o conteúdo de outro objeto concurrent_priority_queue a este. Esse 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
O objeto de origem concurrent_priority_queue .
Valor de retorno
Uma referência a esse objeto concurrent_priority_queue.
efetuar push
Adiciona um elemento à fila de prioridades simultâneas. Esse 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 prioridades simultâneas.
tamanho
Retorna o número de elementos na fila de prioridades simultâneas. Esse método é seguro para simultaneidade.
size_type size() const;
Valor de retorno
O número de elementos no objeto concurrent_priority_queue.
Comentários
O tamanho retornado com certeza incluirá todos os elementos adicionados por chamadas à função push. No entanto, ele pode não refletir resultados de operações simultâneas pendentes.
troca
Troca o conteúdo de duas filas de prioridades simultâneas. Esse método não é seguro para simultaneidade.
void swap(concurrent_priority_queue& _Queue);
Parâmetros
_Fila
O objeto concurrent_priority_queue com o qual trocar conteúdo.
try_pop
Remove e retorna o elemento de prioridade mais alta da fila se a fila não está vazia. Esse 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 estourado; caso contrário, false.
Confira também
Namespace de simultaneidade
Contêineres e objetos em paralelo