- Entrou
- Set 23, 2006
- Mensagens
- 1,690
- Gostos Recebidos
- 0
Já tinha dado uma breve introdução aos iteradores quando falei do objecto string, agora dá-me jeito aprofundar mais esse conceito antes de introduzir a STL. Quem não tiver visto a introdução que fiz, convém que o faça agora.
O iterador que aqui vou deixar é muito simples e serve para iterar todos os números pares. Não encontro nenhum exemplo prático para este iterador, mas penso que servirá para demonstrar o quão versátil pode ser um iterador.
O iterador que aqui vou deixar é muito simples e serve para iterar todos os números pares. Não encontro nenhum exemplo prático para este iterador, mas penso que servirá para demonstrar o quão versátil pode ser um iterador.
Os iteradores são mais usados para fazer a ligação entre o programador e o contentor. Desta forma torna-se mais fácil a utilização de contentores diferentes, pois podem percorrer-se com um for todos da mesma maneira.class ParIter {
// valor corrente do iterador
int value;
public:
// usando este construtor pode-se fazer
// ParIter a(10); em que value ficarA com 10
// ou ParIter a; em que value ficarA com 0
ParIter( int v = 0 ) : value(v) {
// caso algum nabo inicialize value com
// um nUmero impar, muda-se value para o nUmero par anterior
if( value%2 )
--value;
}
/*
o operator ++ farA com que o ParIter avance para o prOximo
valor vAlido, para o prOximo par */
ParIter operator++() { return value+=2; }
ParIter operator++(int)
{ ParIter aux=*this; ++(*this); return aux; }
ParIter operator--() { return value-=2; }
ParIter operator--(int)
{ ParIter aux=*this; --(*this); return aux; }
// operador desreferência
int operator*() { return value;}
};