Para los iterators… Puede mirar no tan la primera vez, pero los iterators son una clase de más natural. Cuando usted soluciona un problema, usted tiende a pensar en términos “procesa todos los elementos de…”, o matemáticamente “para todos los elementos en…”. La única manera convencional de hacer que es utilizar un lazo. El lazo del rato en idiomas de la C-familia es demasiado general; usted tiene hace algunos pasos en sus los propios. Para el lazo en idiomas de la C-familia es una pequeña mejora sintáctica del rato. En otros lenguajes de programación, para el lazo está un lazo contado. Pero esto también significa que usted tiene que transformar un índice al elemento puesto en un índice. Debido a ése, usted tiende a menudo a poner los elementos en un poco de estructura puesta en un índice -- a un arsenal o a un vector.
Si usted piensa más de él, cuál es una clase su realmente necesidad de lazo generalizado ese los lazos a través de todos los elementos de un envase sin necesario la preparación de un cierto índice numérico. Si usted personifica el proceso, el trabajador dice otro “me da el siguiente”, y no “darme 3254o”. Esto es exactamente para cuál son buenos los iterators. El iterator es tipo-limita de alguna manera al envase. Entonces usted puede estar no interesado en detalles internos (si está puesto en un índice adentro, o si es una estructura ligada). Es decir los iterators traen más abstracción.
Desafortunadamente, los iterators son más nuevos que la base de C++ y por lo tanto allí no es ninguÌn lazo y sintaxis generalizados para hacer todos de este más evidente sintácticamente. Una vez que usted se acostumbra a un mejor sytax del lazo generalizado (en otras idiomas, como en el pitón donde los iterators trabajan casi mágico, ocultado), usted falta realmente ese sintaxis en C++. El nuevo estándar de C++ va a mejorarlo un pedacito.