Explicação detalhada de pilha, fila e fila de prioridade

pilha

A pilha empurra elementos do final do contêiner subjacente e remove elementos do final do contêiner subjacente. Uma pilha pode ser considerada uma casa sem porta da frente, apenas uma porta dos fundos. Depois de entrar pela porta dos fundos, quem entrar depois sairá primeiro pela porta dos fundos.

Insira a descrição da imagem aqui

Fila

A fila empurra os elementos para a parte final do contêiner subjacente e os remove da frente do contêiner subjacente. A fila pode ser considerada um local de conferência de passagens, após a verificação da passagem você pode entrar diretamente no ônibus.

Insira a descrição da imagem aqui

Então, primeiro a entrar, primeiro a sair. Primeiro a entrar, primeiro a sair.

Explicação detalhada da fila de prioridade

A fila de prioridade é definida no arquivo de cabeçalho https://cplusplus.com/reference/queue/. Existem duas classes de contêiner neste arquivo de cabeçalho, uma é fila e a outra é prioridade_queue. A primeira é uma fila primeiro a entrar, primeiro a sair e a segunda é uma fila prioritária.

Uma fila de prioridade é um tipo de adaptador de contêiner projetado especificamente para que seu primeiro elemento seja sempre o elemento de "maior prioridade" que ele contém, e o padrão de prioridade seja algum padrão de ordenação estrito e fraco (critério estrito de sequência fraca).

template<
    class T,
    class Container = std::vector<T>,
    class Compare = std::less<typename Container::value_type>
> class priority_queue;

A descrição acima é a definição de classe de modelo de prioridade_queue. Compare fornece uma definição de "prioridade".

Sobre Comparar : Se o primeiro parâmetro de Comparar estiver na frente do segundo parâmetro, ele retornará verdadeiro.Por exemplo, o parâmetro padrão da classe de modelo acima é std::less, ou seja, o número menor está na frente e o primeiro na fila de prioridade O elemento (frontal) é o maior elemento, portanto, o elemento na frente na função de comparação é gerado posteriormente. Ou seja, a frente da fila contém os elementos do final de acordo com a ordem fraca especificada por Compare. Ainda tomando less como exemplo, 2<3, 2 está na frente de 3. Portanto, produza após 2. Pode ser vividamente lembrado como: as pessoas do lado esquerdo do menor número vêm primeiro, e as que chegam primeiro esperam na porta da bilheteria, deixando os assentos da frente para as pessoas mais respeitadas que chegam depois.
Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/ChenglinBen/article/details/130973422
Recomendado
Clasificación