English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
No campo da ciência da computação, nos dedicamos a vários programas. Cada um deles tem seu próprio domínio e utilidade. De acordo com o propósito de criação do programa e o ambiente, temos uma grande quantidade de estruturas de dados disponíveis para escolher. Uma delas é a 'fila'. Antes de discutir esse tipo de dados, vamos dar uma olhada na sua sintaxe.
template<class T, class Container = deque<T> > class queue;
Esta estrutura de dados é aplicável à técnica FIFO, onde FIFO significa primeiro a entrar, primeiro a sair. O elemento inserido primeiro será extraído primeiro, e assim por diante. Há um elemento chamado 'frente', que é o elemento localizado na posição mais à frente ou na primeira posição, e também há um elemento chamado 'trás', que é o elemento localizado na posição mais à trás. Em uma fila comum, a inserção dos elementos ocorre na extremidade, enquanto a exclusão começa pela frente.
A fila implícita na área de aplicação é adaptador de contêiner.
O contêiner deve suportar a seguinte lista de operações:
empty
size
push_back
pop_front
front
back
T:O parâmetro especifica o tipo dos elementos que o adaptador de contêiner manterá.
Container:O parâmetro especifica o objeto interno do contêiner, onde os elementos da fila são mantidos.
A seguir, é fornecida uma lista dos tipos de membros da fila e uma descrição breve sobre eles.
Tipos de membros | Descrição |
---|---|
value_type | Especifica o tipo do elemento. |
container_type | Especifica o tipo do contêiner subjacente. |
size_type | Especifica o intervalo de tamanho do elemento. |
reference | É o tipo de referência do contêiner. |
const_reference | É o tipo de referência do contêiner constante. |
Através das funções, podem ser usados ou incorporados objetos ou variáveis na área de programação. A fila oferece muitas funções que podem ser usadas ou incorporadas em um programa. A lista é a mesma:
Função | Descrição |
---|---|
(constructor) | Esta função é usada para construir o contêiner da fila. |
empty | Esta função é usada para testar se a fila está vazia. Se a fila estiver vazia, esta função retorna true, caso contrário, retorna false. |
size | Esta função retorna o número de elementos na fila. |
front | Esta função retorna o primeiro elemento. Este elemento desempenha um papel muito importante, pois todas as operações de exclusão são executadas no elemento front. |
back | Esta função retorna o último elemento. Este elemento desempenha um papel muito importante, pois todas as operações de inserção são executadas no elemento posterior. |
push | Esta função é usada para inserir um novo elemento no final. |
pop | Esta função é usada para remover o primeiro elemento. |
emplace | Esta função é usada para inserir um novo elemento acima do elemento posterior na fila. |
swap | Esta função é usada para trocar o conteúdo de dois contêineres referenciados. |
operadores relacionais | As funções não-membros especificam os operadores relacionais necessários para a fila. |
uses allocator<queue> | Como o nome sugere, as funções não-membros usam o alocação de memória para a fila. |
#include <iostream> #include <queue> using namespace std; void showsg(queue<int> sg) { queue<int> ss = sg; while (!ss.empty()) { cout << "\t" << ss.front(); ss.pop(); } cout << "\n"; } int main() { queue<int> fquiz; fquiz.push(10); fquiz.push(20); fquiz.push(30); cout << "A fila fquiz é : "; showsg(fquiz); cout << "\nfquiz.size() : " << fquiz.size(); cout << "\nfquiz.front() : " << fquiz.front(); cout << "\nfquiz.back() : " << fquiz.back(); cout << "\nfquiz.pop() : "; fquiz.pop(); showsg(fquiz); return 0; }
Saída:
A fila fquiz é : 10 20 30 fquiz.size() : 3 fquiz.front() : 10 fquiz.back() : 30 fquiz.pop() : 20 30