Partilhar via


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

priority_queue::const_reference (STL/CLR)

O tipo de uma referência constante para um elemento.

priority_queue::container_type (STL/CLR)

O tipo de contêiner subjacente.

priority_queue::difference_type (STL/CLR)

O tipo de uma distância assinada entre dois elementos.

priority_queue::generic_container (STL/CLR)

O tipo de interface genérica para o adaptador do contêiner.

priority_queue::generic_value (STL/CLR)

O tipo de um elemento para a interface genérica para o adaptador do contêiner.

priority_queue::reference (STL/CLR)

O tipo de uma referência para um elemento.

priority_queue::size_type (STL/CLR)

O tipo de uma distância assinada entre dois elementos.

priority_queue::value_compare (STL/CLR)

O delegado de ordenação para dois elementos.

priority_queue::value_type (STL/CLR)

O tipo de um elemento.

Função de membro

Descrição

priority_queue::assign (STL/CLR)

Substitui todos os elementos.

priority_queue::empty (STL/CLR)

Testa se nenhum elemento estiver presente.

priority_queue::get_container (STL/CLR)

Acessa o contêiner subjacente.

priority_queue::pop (STL/CLR)

Remove o elemento de hghest- prioridade.

priority_queue::priority_queue (STL/CLR)

Cria um objeto contêiner.

priority_queue::push (STL/CLR)

Adiciona um novo elemento.

priority_queue::size (STL/CLR)

Conta o número de elementos.

priority_queue::top (STL/CLR)

Acessa o elemento a prioridade mais alta.

priority_queue::to_array (STL/CLR)

Copia a sequência controlada a uma nova matriz.

priority_queue::value_comp (STL/CLR)

Copia o representante de ordenação para dois elementos.

Propriedade

Descrição

priority_queue::top_item (STL/CLR)

Acessa o elemento a prioridade mais alta.

Operador

Descrição

priority_queue::operator= (STL/CLR)

Substitui a sequência controlada.

Interfaces

Interface

Descrição

ICloneable

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:

Consulte também

Referência

deque (STL/CLR)

queue (STL/CLR)

stack (STL/CLR)

vector (STL/CLR)

Outros recursos

Referência de biblioteca STL/CLR