Compartilhar via


priority_queue Class

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

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

Parâmetros

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

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

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

Comentários

Os elementos de classe Tipo estipulados no primeiro parâmetro de um modelo de objeto de fila são sinónimos com value_type e devem corresponder ao tipo de elemento na classe base Contêiner do contêiner estipulado pelo segundo parâmetro do modelo.Tipo Deve ser assinalável, para que seja possível copiar objetos do tipo e atribuir valores a variáveis de esse tipo.

O priority_queue da seqüência que controla chamando um objeto armazenado na função da classe Traits.Geralmente, os elementos precisam ser simplesmente menor que comparáveis estabelecer ordem: para que, dado todos os dois elementos, pode determinar se qualquer um que são equivalentes (no sentido que nenhum for menor do que o outro) ou um que é menor que o outro.Isso resulta em ordenação entre elementos nonequivalent.Em uma nota mais técnica, a função de comparação binária é um predicado que induza ordenação fraco strict no sentido matemático padrão.

As classes base apropriadas de contêiner para o priority_queue incluem classe de deque e classe vetorial padrão ou qualquer outro recipiente de seqüência que oferecer suporte às operações de front, push_back, e pop_back e um iterador de acesso aleatório.A classe base recipiente é encapsulada no adaptador recipiente, que expõe somente o conjunto limitado das funções de membro do recipiente de seqüência como uma interface pública.

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

Existem três tipos de adaptadores de contêiner definidos por STL: pilha, fila, e priority_queue.Cada restringe a funcionalidade de alguma classe base de contêiner para fornecer uma interface com precisão controlada a estrutura de dados padrão.

  • classe de pilha oferece suporte a último, na primeira - out estrutura de dados (LIFO).Um bom analogue para ter em mente seria uma pilha de placas.Elementos (placas) podem ser inseridos, inspecionado, ou removido somente a parte superior de pilha, que é o último elemento no final do contêiner base.A limitação a acessar somente o elemento superior é o motivo para usar a classe de pilha.

  • classe da fila oferece suporte a primeira em, primeira - out estrutura de dados (FIFO).Um bom analogue para ter em mente seria pessoa que linhas para um caixa de banco.Elementos () pessoas podem ser adicionados verso de linha e são removidos da frente da linha.A a frente e para trás de uma linha podem ser inspecionadas.A limitação a acessar somente os elementos da frente e volta de essa maneira é a razão para usar a classe da fila.

  • A classe de priority_queue ordenar seus elementos de modo que o elemento está sempre maior na posição superior.Oferece suporte a inserção de um elemento e a inspeção e remoção do elemento superior.Um bom analogue para ter em mente seria pessoa que alinha onde são organizados pela idade, pela altura, ou por algum outro critério.

4ef4dae9.collapse_all(pt-br,VS.110).gifConstrutores

priority_queue

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

4ef4dae9.collapse_all(pt-br,VS.110).gifTypedefs

container_type

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

size_type

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

value_type

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

4ef4dae9.collapse_all(pt-br,VS.110).gifFunções de membro

vazio

Teste se priority_queue está vazia.

PNF

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

enviar

Adiciona um elemento a fila de prioridade com base na prioridade de elemento de operator<.

tamanho

Retorna o número de elementos em priority_queue.

parte superior

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

Requisitos

Cabeçalho: <queue>

namespace: STD

Consulte também

Referência

Segurança do thread na biblioteca C++ padrão

Standard Template Library