Partilhar via


concurrent_priority_queue Classe

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.

Ver também

simultaneidade Namespace
Contêineres e objetos paralelos