priority_queue (STL/CLR)
A classe de modelo descreve um objeto que controla um variação comprimento ordenada seqüência de elementos que tem acesso limitado.Usar o adaptador de contêiner priority_queue para gerenciar um contêiner subjacente como uma fila de prioridade.
Na descrição abaixo, GValue é o mesmo que Value , a menos que o último é um tipo de referência, caso em que é Value^.Da mesma forma, GContainer é o mesmo que Container , a menos que o último é um tipo de referência, caso em que é Container^.
template<typename Value,
typename Container>
ref class priority_queue
System::ICloneable,
Microsoft::VisualC::StlClr::IPriorityQueue<GValue, GContainer>
{ ..... };
Parâmetros
Valor
O tipo de um elemento na seqüência controlada.Contêiner
O tipo de contêiner subjacente.
Membros
Definição de tipo |
Descrição |
---|---|
O tipo de uma referência constante a um elemento. |
|
O tipo de contêiner subjacente. |
|
O tipo de uma distância assinada entre dois elementos. |
|
O tipo de interface genérica para o adaptador de contêiner. |
|
O tipo de um elemento da interface genérica para o adaptador de contêiner. |
|
O tipo de uma referência a um elemento. |
|
O tipo de uma distância assinada entre dois elementos. |
|
O delegado pedido para dois elementos. |
|
O tipo de um elemento. |
Função de membro |
Descrição |
---|---|
Substitui todos os elementos. |
|
Testes se elementos não estão presentes. |
|
Acessa o contêiner subjacente. |
|
Remove o elemento de prioridade de hghest. |
|
Constrói um objeto de recipiente. |
|
Adiciona um novo elemento. |
|
Conta o número de elementos. |
|
Acessa o elemento de prioridade mais alta. |
|
Copia a seqüência controlada para uma nova matriz. |
|
Copia o delegate pedido para dois elementos. |
Propriedade |
Descrição |
---|---|
Acessa o elemento de prioridade mais alta. |
Operator |
Descrição |
---|---|
Substitui a seqüência controlada. |
Interfaces
Interface |
Descrição |
---|---|
Duplica um objeto. |
|
IPriorityQueue < valor, recipiente > |
Manter o adaptador de contêiner genérico. |
Comentários
O objeto aloca e libera o armazenamento para a seqüência que ele controla por meio de um contêiner subjacente, do tipo Container, que armazena Value elementos e cresce sob demanda.Ele mantém a seqüência ordenada como uma pilha, com o elemento de prioridade mais alta (o elemento superior) prontamente acessível e removível.O objeto restringe o acesso para envio de novos elementos e tirando apenas o elemento de prioridade mais alta, a implementação de uma fila de prioridade.
O objeto ordena a seqüência que ele controla chamando um objeto delegado armazenado do tipo priority_queue::value_compare (STL/CLR).Você pode especificar o objeto delegado armazenado quando você construir o priority_queue; Se você não especificar nenhum objeto delegado, o padrão é a comparação operator<(value_type, value_type).Acessar este objeto armazenado chamando a função de membro priority_queue::value_comp (STL/CLR)().
Um objeto de delegado deve impor uma ordem fraca estrita nos valores do tipo priority_queue::value_type (STL/CLR).Isso significa que, para quaisquer duas chaves X e Y:
value_comp()(X, Y)Retorna o Boolean mesmo resultar em cada chamada.
Se value_comp()(X, Y) for true, em seguida, value_comp()(Y, X) deve ser false.
Se value_comp()(X, Y) for true, em seguida, X é dito ser solicitados antes de Y.
Se !value_comp()(X, Y) && !value_comp()(Y, X) for true, em seguida, X e Y disse ter pedido equivalente.
Para qualquer elemento X que precede Y na seqüência controlada, key_comp()(Y, X) é falso.(Para o objeto delegado padrão, as chaves nunca diminuir no valor.)
O elemento de prioridade mais alto, portanto, é um dos elementos que não é ordenada antes de qualquer outro elemento.
Desde que o contêiner subjacente mantém ordenados como uma pilha de elementos:
O contêiner deve oferecer suporte a iteradores de acesso aleatório.
Elementos com ordem equivalente podem ser exibidos em uma ordem diferente, que foram enviados.(A ordem não é estável.)
Assim, incluem candidatos para o contêiner subjacente deque (STL/CLR) e vetor (STL/CLR).
Requisitos
Cabeçalho: < cliext/fila >
Namespace: cliext