Compartilhar via


Classe priority_queue

Uma classe de adaptador do contêiner do modelo que fornece uma limitação da funcionalidade que limita o acesso ao elemento superior de um determinado tipo de contêiner subjacente, que é sempre o maior ou de prioridade mais alta. Novos elementos podem ser adicionados ao priority_queue e o elemento superior do priority_queue pode ser inspecionado ou descartado.

template < 
   class Type,  
   class Container=vector<Type>, 
   class Compare=less<typename Container::value_type>  
> 
class priority_queue

Parâmetros

  • Tipo
    O tipo de dados do elemento a ser armazenado em priority_queue.

  • Container
    O tipo de contêiner subjacente usado para implementar o priority_queue.

  • Comparar
    O tipo que fornece um objeto de função que pode comparar dois valores do elemento como chaves de tipo para determinar a ordem relativa no priority_queue. Esse argumento é opcional e o contêinerbinário**::value_type***<>de lesstypenamede predicado é o valor padrão.*

Comentários

Os elementos da classe Tipo estipulados no primeiro parâmetro do modelo de um objeto da fila são sinônimos com value_type e devem corresponder ao tipo de elemento na classe subjacente Contêiner do contêiner estipulado por segundo parâmetro do modelo. Tipo Deve ser assinalável, de modo que é possível copiar objetos desse tipo e atribuir valores às variáveis do tipo.

O priority_queue regras a sequência que controla chamando um objeto armazenado da função da classe Características. Em geral, os elementos precisam ser menor do que simplesmente comparáveis estabelecer esta ordem: de modo que, em todos os dois elementos, se possa determinar o que são equivalentes (no sentido de que nenhum é menor que outro) ou que um é menor que outro. Isso resulta na ordem entre os elementos nonequivalent. Em uma nota mais técnica, a função de comparação é um predicado que a ordenação binária induza fraco restrito no sentido matemático padrão.

As classes subjacentes adequadas do contêiner para o priority_queue incluem classe de deque e classe de vetor padrão ou qualquer outro contêiner de sequência que oferecer suporte a operações de front, push_back, e pop_back e um iterador de acesso aleatório. A classe subjacente do contêiner são encapsuladas no adaptador de contêiner, que expõe apenas o conjunto limitado das funções de membro do contêiner da sequência como uma interface pública.

Adicionar elementos a e remover os elementos de priority_queue têm a complexidade logarítmica. Acessar os elementos em priority_queue tem a complexidade constante.

Há três tipos de adaptadores de contêineres STL definidos por: pilha, a fila, e priority_queue. Cada restringe a funcionalidade de qualquer classe subjacente do contêiner para fornecer uma interface precisamente controlada a uma estrutura de dados padrão.

  • a classe da pilha oferece suporte à última a entrar, primeiro a sair estrutura de dados (LIFO). Um bom analogue a considerar seria uma pilha de espaços em branco. Os elementos em branco () podem ser inseridos, inspecionado, ou descartado apenas a parte superior da pilha, que é o elemento mais recente na extremidade do contêiner de base. A restrição a acessar apenas o elemento superior é a razão para usar a classe de pilha.

  • Oferece suporte à classe de fila (primeiro a entrar, primeiro a sair estrutura de dados (FIFO). Um bom analogue a considerar seria pessoa que alinhe para um banco de caixa. Os elementos () pessoas podem ser adicionados à parte da linha e são removidos da frente da linha. A frente e para somente de uma linha podem ser inspecionadas. A restrição a acessar os elementos somente da frente e do backup é dessa forma a razão para usar a classe da fila.

  • A classe de priority_queue ordenação dos elementos de forma que o elemento superior estão sempre na posição superior. Oferece suporte à inserção de um elemento e a inspeção e a remoção do elemento superior. Um bom analogue a considerar seria pessoa que alinhe em que são organizados por idade, pela altura ou, por algum outro critério.

Construtores

priority_queue

Constrói priority_queue que estiver vazia ou que é uma cópia de um intervalo de um objeto contêiner de base ou de outro priority_queue.

Typedefs

container_type

Um tipo que fornece o contêiner de base a ser adaptado por priority_queue.

size_type

Um tipo de número inteiro sem sinal que pode representar o número de elementos em priority_queue.

tipo de valor

Um tipo que representa o tipo de objeto armazenada como um elemento em priority_queue.

Funções de membro

vazio

Testa se priority_queue está vazia.

pop

Remove o elemento o maior de priority_queue da posição superior.

envio

Adiciona um elemento à fila de prioridade baseada na prioridade do elemento do operador<.

size

Retorna o número de elementos em priority_queue.

top

Retorna uma referência de const ao elemento superior na parte superior de priority_queue.

Requisitos

Fila <deHeader: >

Namespace: std

Consulte também

Referência

Segurança de threads na Biblioteca Padrão C++

Biblioteca de Modelos Padrão