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.
Construtores
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. |
Typedefs
Um tipo que fornece o contêiner de base a ser adaptado por priority_queue. |
|
Um tipo inteiro sem sinal de que possa representar o número de elementos em priority_queue. |
|
Um tipo que representa o tipo de objeto armazenado como um elemento em priority_queue. |
Funções de membro
Teste se priority_queue está vazia. |
|
Remove o elemento maior de priority_queue da posição superior. |
|
Adiciona um elemento a fila de prioridade com base na prioridade de elemento de operator<. |
|
Retorna o número de elementos em priority_queue. |
|
Retorna uma referência ao elemento const o maior na parte superior de priority_queue. |
Requisitos
Cabeçalho: <queue>
namespace: STD