Biblioteca C ++ - <queue>

Introdução à fila

Fila é uma estrutura de dados projetada para operar no contexto FIFO (First in First out). Na fila, os elementos são inseridos da extremidade traseira e removidos da extremidade dianteira .

A classe da fila é um adaptador de contêiner. Container é um objeto que contém dados do mesmo tipo. A fila pode ser criada a partir de diferentes contêineres de sequência. Adaptadores de contêiner não suportam iteradores, portanto, não podemos usá-los para manipulação de dados. No entanto, eles oferecem suporte a funções de membro push () e pop () para inserção e exclusão de dados, respectivamente.

Definição

Abaixo está a definição de std :: queuer do arquivo de cabeçalho <queue>

template <class T, class Container = deque<T> > class queue;

Parâmetros

  • T - Tipo de elemento contido.

    T pode ser substituído por qualquer outro tipo de dados, incluindo o tipo definido pelo usuário.

  • Container - Tipo do objeto recipiente subjacente.

Tipos de membros

Os seguintes tipos de membro podem ser usados ​​como parâmetros ou tipo de retorno por funções de membro.

Sr. Não. Tipos de membros Definição
1 value_type T (primeiro parâmetro do modelo)
2 Tipo de recipiente Segundo parâmetro do template
3 Tamanho Tipo size_t
4 referência value_type &
5 const_reference const value_type &
6 tipo de diferença ptrdiff_t

Funções de <queue>

Abaixo está uma lista de todos os métodos do cabeçalho <queue>.

Construtores

Sr. Não. Método e Descrição
1 queue :: construtor padrão da fila

Constrói um objeto de fila vazio, com zero elementos.

2 queue :: construtor de inicialização de fila

Constrói um objeto de fila e atribui um contêiner interno por uma cópia de ctnr .

3 queue :: construtor de movimentação de fila

Constrói a fila com o conteúdo de outra usando a semântica de movimentação.

4 queue :: construtor de cópia de fila

Constrói uma fila com cópia de cada elemento presente na fila existente outro .

Destruidor

Sr. Não. Método e Descrição
1 fila :: ~ fila

Destrói a fila desalocando a memória do contêiner.

Funções de membro

Sr. Não. Método e Descrição
1 fila :: voltar

Retorna uma referência ao último elemento da fila.

2 queue :: emplace

Constrói e insere novo elemento no final da fila.

3 fila :: vazia

Testa se a fila está vazia ou não.

4 fila :: frente

Retorna uma referência ao primeiro elemento da fila.

5 queue :: operator = copiar versão

Atribui novos conteúdos à fila, substituindo os antigos.

6 fila :: operador = mover versão

Atribui novos conteúdos à fila, substituindo os antigos.

7 fila :: pop

Remove o elemento da frente da fila.

8 fila :: versão de cópia push

Insere um novo elemento no final da fila.

9 fila :: versão push move

Insere um novo elemento no final da fila.

10 fila :: tamanho

Retorna o número total de elementos presentes na fila.

11 queue :: swap

Troca o conteúdo da fila com o conteúdo de outra fila.

Funções sobrecarregadas de não membros

Sr. Não. Método e Descrição
1 operador ==

Testa se duas filas são iguais ou não.

2 operador! =

Testa se duas filas são iguais ou não.

3 operador <

Testa se a primeira fila é menor que a outra ou não.

4 operador <=

Testa se a primeira fila é menor ou igual a outra ou não.

5 operador>

Testa se a primeira fila é maior que a outra ou não.

6 operador> =

Testa se a primeira fila é maior ou igual a outra ou não.

7 troca

Troca o conteúdo de duas filas.

Introdução a priority_queue

A fila de prioridade é a estrutura de dados da fila que tem prioridade. A fila de prioridade é análoga à estrutura de dados de heap em que o elemento pode ser inserido em qualquer ordem e sempre o elemento de heap máximo é recuperado primeiro.

Definição

Abaixo está a definição de std :: priority_queue do arquivo de cabeçalho <queue>

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

Parâmetros

  • T - Tipo de elemento contido.

    T pode ser substituído por qualquer outro tipo de dados, incluindo o tipo definido pelo usuário.

  • Container - Tipo do objeto recipiente subjacente.

  • Compare - Objeto de comparação a ser usado para ordenar a priority_queue.

    Pode ser um ponteiro de função ou objeto de função que pode comparar seus dois argumentos.

Tipos de membros

Os seguintes tipos de membro podem ser usados ​​como parâmetros ou tipo de retorno por funções de membro.

Sr. Não. Tipos de membros Definição
1 value_type T (primeiro parâmetro do modelo)
2 Tipo de recipiente Segundo parâmetro do template
3 Tamanho Tipo size_t
4 referência value_type &
5 const_reference const value_type &
6 tipo de diferença ptrdiff_t

Funções de <queue>

Abaixo está uma lista de todos os métodos do cabeçalho <queue>.

Construtores

Sr. Não. Método e Descrição
1 priority_queue :: priority_queue construtor padrão

Constrói um priority_queue vazio com zero elemento.

2 priority_queue :: priority_queue initialize construtor

Constrói um objeto priority_queue e atribui um contêiner interno por uma cópia de ctnr .

3 priority_queue :: priority_queue range constructor

Constrói uma priority_queue com tantos elementos no intervalo do primeiro ao último.

4 priority_queue :: priority_queue mover construtor

Constrói o priority_queue com o conteúdo de outro usando a semântica de movimento.

5 priority_queue :: priority_queue copiar construtor

Constrói um priority_queue com cópia de cada elemento presente no priority_queue existente outro.

Destruidor

Sr. Não. Método e Descrição
1 priority_queue :: ~ priority_queue

Destrói priority_queue desalocando a memória do contêiner.

Funções de membro

Sr. Não. Método e Descrição
1 priority_queue :: emplace

Constrói e insere um novo elemento na ordem de classificação na priority_queue.

2 priority_queue :: vazio

Testa se pritority_queue está vazio ou não.

3 priority_queue :: operator = copiar versão

Atribui novos conteúdos a priority_queue substituindo os antigos.

4 priority_queue :: operator = mover versão

Atribui novos conteúdos a priority_queue substituindo os antigos.

5 priority_queue :: pop

Remove o elemento frontal de priority_queue.

6 priority_queue :: push copy version

Insere um novo elemento na ordem de classificação.

7 priority_queue :: push move version

Insere um novo elemento na ordem de classificação.

8 priority_queue :: size

Retorna o número total de elementos presentes na priority_queue.

9 priority_queue :: swap

Troca o conteúdo de priority_queue com conteúdo de outro priority_queue.

10 priority_queue :: top

Retorna uma referência ao primeiro elemento de priority_queue

Funções sobrecarregadas de não membros

Sr. Não. Método e Descrição
1 troca

Troca o conteúdo de priority_queue com conteúdo de outro priority_queue.