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
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
Um tipo que fornece o contêiner de base a ser adaptado por priority_queue. |
|
Um tipo de número inteiro sem sinal que pode representar o número de elementos em priority_queue. |
|
Um tipo que representa o tipo de objeto armazenada como um elemento em priority_queue. |
Funções de membro
Testa se priority_queue está vazia. |
|
Remove o elemento o maior de priority_queue da posição superior. |
|
Adiciona um elemento à fila de prioridade baseada na prioridade do elemento do operador<. |
|
Retorna o número de elementos em priority_queue. |
|
Retorna uma referência de const ao elemento superior na parte superior de priority_queue. |
Requisitos
Fila <deHeader: >
Namespace: std