[eside-ghost] Guarreando con iterators en C++

Alfredo Beaumont alfredo.beaumont en gmail.com
Mar Ene 22 21:18:01 CET 2008


Ar, 2008eko Urtren 22a(e)an, Jon Valdés(e)k idatzi zuen:
> Bueeenas,
>
> Ando pasando iterators de vectores de un sitio para otro en un trabajo
> que tengo que hacer, y me he encontrado con algunos problemas :-S
>
> Os comento. Tengo un bloque de código al que llega un iterator tal
> que:    vector<int>::const_iterator i
> Pero no tengo forma de saber a qué vector pertenece el iterator (no
> había previsto eso al diseñar la estructura del código originalmente,
> y ahora sería complicado cambiarlo).
>
> Y por desgracia, como estoy tratando los vectores para representar
> unos datos cíclicos, cuando llego al final del vector usando el
> iterator, me gustaría volver al principio de éste.
>
> Es decir, si el vector V tiene 5 elementos y el iterador i apunta a
> V[4], a continuación necesito sacar V[0].
>
> ¿Alguna idea, además de pasar de alguna forma un puntero al vector
> correspondiente al iterator?

Si te he entendido bien, no, no hay forma de hacerlo. Al fin y al cabo, un 
iterator es conceptualmente similar a un puntero, por lo que necesitas 
compararlo al valor final del vector para saber si has llegado al final.

Saludos
-- 
Alfredo Beaumont Sainz
http://www.alfredobeaumont.org/blog.cgi


Más información sobre la lista de distribución eside-ghost