priority_queue (STL/CLR)
A classe do modelo descreve um objeto que controla um variar- comprimento ordenadas da sequência de elementos que limitou o acesso. Você usa o adaptador priority_queue do contêiner 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, nesse caso é Value^. Da mesma forma, GContainer é o mesmo que Container a menos que o último é um tipo de referência, nesse caso é 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 sequência controlada.Contêiner
O tipo de contêiner subjacente.
Membros
Definição de tipo |
Descrição |
---|---|
O tipo de uma referência constante para 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 do contêiner. |
|
O tipo de um elemento para a interface genérica para o adaptador do contêiner. |
|
O tipo de uma referência para um elemento. |
|
O tipo de uma distância assinada entre dois elementos. |
|
O delegado de ordenação para dois elementos. |
|
O tipo de um elemento. |
Função de membro |
Descrição |
---|---|
Substitui todos os elementos. |
|
Testa se nenhum elemento estiver presente. |
|
Acessa o contêiner subjacente. |
|
Remove o elemento de hghest- prioridade. |
|
Cria um objeto contêiner. |
|
Adiciona um novo elemento. |
|
Conta o número de elementos. |
|
Acessa o elemento a prioridade mais alta. |
|
Copia a sequência controlada a uma nova matriz. |
|
Copia o representante de ordenação para dois elementos. |
Propriedade |
Descrição |
---|---|
Acessa o elemento a prioridade mais alta. |
Operador |
Descrição |
---|---|
Substitui a sequência controlada. |
Interfaces
Interface |
Descrição |
---|---|
Duplica um objeto. |
|
IPriorityQueueValue<, contêineres> |
Mantenha o adaptador genérico do contêiner. |
Comentários
O objeto aloca e libera armazenamento para a sequência que controla por meio de um contêiner subjacente, o tipo Container, que armazena os elementos de Value e cresce sob demanda. Mantém a sequência ordenada como um heap, o elemento com a prioridade mais alta (o elemento superior) prontamente acessado e removível. O objeto restringe o acesso a enviar os novos elementos e a aparecer apenas o elemento a prioridade mais alta, implementando uma fila de prioridade.
O objeto classifica a sequência que controla chamando um objeto armazenado delegado do tipo priority_queue::value_compare (STL/CLR). Você pode especificar o objeto armazenado delegado quando você constrói o priority_queue; se você não especificar um objeto de delegação, o padrão será a comparação operator<(value_type, value_type). Você acessa esse objeto armazenado chamando a função de membro priority_queue::value_comp (STL/CLR)().
Esse objeto de delegação restrita deve impor a ordenação fraco em valores de tipo priority_queue::value_type (STL/CLR). Isso significa que, para algumas duas chaves X e Y:
value_comp()(X, Y) retorna o mesmo resultado booliano em cada chamada.
Se value_comp()(X, Y) é true, então value_comp()(Y, X) deve ser false.
Se value_comp()(X, Y) é true, então X seriam ordenado antes de Y.
Se !value_comp()(X, Y) && !value_comp()(Y, X) é true, então X e Y são ditos ter ordenação equivalente.
Para qualquer elemento X que preceder Y na sequência controlada, key_comp()(Y, X) será false. (Para o objeto padrão de delegação, as chaves nunca diminuem em valor.)
O elemento a prioridade mais alta assim é um dos elementos que não são coletados antes de qualquer outro elemento.
Como o contêiner subjacente mantém os elementos ordenados como um heap:
O contêiner deve oferecer suporte iteradores de acesso aleatório.
Os elementos com a ordenação de equivalente podem ser aparecidos em uma ordem diferente do que foram empurrados. (A ordenação não for estável.)
Portanto, os candidatos para o contêiner subjacente incluem deque (STL/CLR) e vetora.
Requisitos
cliext </fila deCabeçalho: >
cliext deNamespace: