¿Qué son iteradores en C++?¿Qué son iteradores, C++?
Respuesta
Los iteradores son una forma de atravesar una colección de objetos. Normalmente, le permiten acceder secuencialmente a un contenedor STL (Biblioteca de plantillas estándar) de forma similar al acceso a una matriz C clásica con un puntero. Para acceder a un objeto a través de un iterador, lo desreferencia como un puntero C. Para acceder al siguiente objeto de una colección, use el operador de incremento (++). Algunos contenedores tienen múltiples tipos de iteradores que le permiten recorrer la colección de diferentes maneras.
http://en.wikipedia.org/wiki/Iterator
Algo que le permite ir a través de todo en una matriz, una por una.
En C++, creo que estás hablando de "for_each" ... Hasta donde yo sé, C++ en realidad no tiene "foreach" a diferencia de los lenguajes como C#. Sin embargo, la biblioteca de plantillas estándar lo tiene.
Sin duda es más que arreglos, de hecho el objetivo de los iteradores en C++ consiste en abstraer la colección en sí y sus propiedades para que los algoritmos que tratan con iteradores se puedan usar sobre cualquier tipo de colección :) –
Representan una posición dentro de una secuencia. Por sí mismos, son poco más que curiosidades, pero cuando se desreferencian, dan como resultado el valor contenido en la secuencia en la posición que representa.
Aunque al principio parece bastante obvio, esta es en realidad una pregunta más profunda de lo que pueda imaginarse. Junto con Paul McJones, Alexander Stepanov (diseñador del original, para cualquiera que no lo sepa) lanzó recientemente un libro llamado Elementos de programación (también conocido como EOP). La totalidad del capítulo seis de ese libro está dedicado específicamente a los iteradores, y gran parte del resto del libro también se relaciona estrechamente con los iteradores. Cualquiera que realmente quiera conocer iteradores con todo detalle podría considerar leer este libro.
Advertencia: EOP es no para el corazón débil. Es relativamente corto (~ 260 páginas), pero bastante denso. Hablando desde la experiencia, el principio es un poco desconcertante. Mi reacción inicial al primer capítulo fue más o menos "bueno, esto es tan obvio que apenas vale la pena leer. ¡Empecé a programar antes de la semana pasada, después de todo!"
Afortunadamente, miré los ejercicios e intenté hacer un par, y aunque había pensado en los temas como obvios, los ejercicios exigen pruebas rigurosas. Es como pedirle que pruebe (en un sentido matemático) que el agua está mojada. Terminas necesitando leer el capítulo un par de veces solo para superar tu propia noción preconcebida de que ya sabes las respuestas, para que puedas ver la verdadera pregunta: ¿qué significa realmente "mojado"? ¿Cuáles son las características fundamentales de "humedad"?
Es un placer venir aquí para encontrar respuestas como estas. +1 –
Gracias por el puntero a un libro que debería haber sabido antes (si no se leyó). –
De p. 80 de Accelerated C++:
Un iterador es un valor que
- identifica un contenedor y un elemento en el contenedor
- nos permite examinar el valor almacenado en ese elemento
- proporciona operaciones para mover entre elementos en el contenedor
- Restringe las operaciones disponibles en formas que corresponden a lo que el contenedor puede manejar de manera eficiente
- 1. iteradores de C++ considerados dañinos?
- 2. Zip Varios iteradores en C++
- 3. devolver iteradores de C++
- 4. Comparar iteradores, C++
- 5. ¿Qué son los Iteradores y Generadores de C#, y cómo podría utilizarlos?
- 6. C# punteros, iteradores y genéricos
- 7. contenedores adaptadores no son compatibles con los iteradores
- 8. Eficiencia de iteradores en unordered_map (C++)
- 9. ¿Qué son [] en C#?
- 10. ¿Qué son los valores singulares y no singulares en el contexto de los iteradores de STL?
- 11. iteradores bidireccionales en unordered_map?
- 12. Iteradores entendimiento en la STL
- 13. C++ 0x tuplas no tienen iteradores, ¿verdad?
- 14. iteradores de estilo de Python en C
- 15. ¡La mayoría de los métodos Iteradores e Iterables son LAZY! ¿Qué significa esto?
- 16. Creando mis propios iteradores
- 17. ¿std :: stack expone iteradores?
- 18. ¿Qué son las colecciones genéricas en C#?
- 19. ¿Qué son excepciones marcadas en Java/C#?
- 20. ¿Qué son declaraciones directas en C++? En
- 21. ¿Qué son los métodos anónimos en C#?
- 22. ¿Qué son las etiquetas de documentación C#?
- 23. ¿Qué son los genéricos en C#?
- 24. Detener en los iteradores del último elemento C++
- 25. vector iteradores de reparto
- 26. ¿Cómo combinar 2 iteradores en Scala?
- 27. Escribiendo stl compatible con iteradores
- 28. ¿Por qué hay una separación de algoritmos, iteradores y contenedores en C++ STL
- 29. Ordenando Iteradores de PHP
- 30. Cuando ordeno una Lista, ¿qué ocurre con sus iteradores?
http: // stackoverflow.com/questions/1064983/different-types-of-iterators/1065528 # 1065528, http://www.sgi.com/tech/stl/Iterators.html –
Esta es una buena fuente de información: http: //www.cs .helsinki.fi/u/tpkarkka/alglib/k06/lectures/iterators.html – Manuel
http://www.cplusplus.com/reference/iterator/ – 7bisso