Descrição Detalhada
template<class T>
class persistence::queue::Queue< T >
Fila persistente.
A fila é implementada usando a pilha persistente, já que esta permite acesso ao k-ésimo elemento, e isto é o bastante para usá-la como uma fila.
A deque armazena elementos do tipo T
, e só assume que esse tipo tem um construtor de cópia. Uma diferença do código discutido no Capítulo 2 da tese é que aqui as funções não recebem a fila, mas são métodos desta.
Um object Queue consiste de uma pilha e um inteiro indicando o número de elementos já removidos desta. O objeto é imutável, e como a implementação é funcional, podemos usá-la de forma persistente, como no seguinte exemplo:
Métodos Públicos | |
Queue () | |
Construtor de fila vazia. | |
Campos de Dados | |
Stack< T > | stack |
Pilha associada. Mais... | |
int | rem |
Contagem de elementos removidos. Mais... | |
Operações de acesso | |
const T & | First () const |
Primeiro elemento da fila. Mais... | |
const T & | K_th (int k) const |
k-ésimo elemento. Mais... | |
int | Size () const |
Tamanho da fila. Mais... | |
Operações de Modificação | |
Estas funções retornam uma cópia modificada da fila, e não alteram o objeto na qual são chamadas. | |
Queue< T > | Enqueue (const T &x) const |
Inserção de valor. Mais... | |
Queue< T > | Dequeue () const |
Remoção do início. Mais... | |
Métodos
Queue<T> persistence::queue::Queue< T >::Dequeue | ( | ) | const |
Remoção do início.
- Retorna
- Uma cópia desta fila sem seu primeiro elemento.
- Pré-Condição
- A fila não deve estar vazia.
Queue<T> persistence::queue::Queue< T >::Enqueue | ( | const T & | x | ) | const |
Inserção de valor.
- Parâmetros
-
x Valor a ser adicionado.
- Retorna
- Uma cópia desa fila com o valor
x
em seu final.
const T& persistence::queue::Queue< T >::First | ( | ) | const |
Primeiro elemento da fila.
- Retorna
- O valor do primeiro elemento da fila.
- Pré-Condição
- A fila não deve estar vazia.
- Veja também
- K_th
- Exemplo
- queue::Queue<int> q;q = q.Enqueue(2);q = q.Enqueue(3);q.First(); // retorna 2q.Dequeue().First() // retorna 3
const T& persistence::queue::Queue< T >::K_th | ( | int | k | ) | const |
k-ésimo elemento.
- Parâmetros
-
k O elemento desejado. 1 é o primeiro elemento da fila.
- Retorna
- O valor do k-ésimo elemento da fila.
- Pré-Condição
1 ≤ k ≤ #size
- Anotações
First()
é equivalente aK_th(1)
- Exemplo
- queue::Queue<int> q;q = q.Enqueue(2);q = q.Enqueue(3);q.K_th(1); // retorna 2q.K_th(2) // retorna 3
int persistence::queue::Queue< T >::Size | ( | ) | const |
Tamanho da fila.
- Retorna
- O tamanho da fila
Campos
int persistence::queue::Queue< T >::rem |
Contagem de elementos removidos.
Esta variável conta quantas vezes Dequeue já foi chamada.
Stack<T> persistence::queue::Queue< T >::stack |
A documentação para esta classe foi gerada a partir do seguinte arquivo:
- /home/travis/build/yancouto/mestrado/source/persistence/Queue.hpp