Un iterador es una construcción de lenguaje de computadora que permite a un programa leer a través de un grupo de valores de datos o piezas de información de una manera sistemática. Los iteradores también permiten el acceso individual a cada miembro del grupo, sin afectar al resto del grupo. Se utilizan en muchos lenguajes de programación y secuencias de comandos, incluidos C ++, Java, PHP y Perl. Su implementación es independiente de los objetos que escanean, por lo que pueden escanear cualquier tipo de grupo de objetos.
Viajar a través de un grupo de objetos con un iterador generalmente se denomina iterar o atravesar. En la mayoría de los lenguajes informáticos, los iteradores se utilizan para atravesar grupos de objetos relacionados denominados colecciones. Sus implementaciones son muy flexibles y pueden usarse con colecciones de cualquier tamaño. En general, son más seguros que el simple acceso a elementos en una colección porque su rango está restringido a los elementos de la colección. Si bien aún es posible acceder a un índice fuera de límites, no es probable si el iterador se usa correctamente.
Los iteradores se definen, inicializan y manejan en la memoria de manera diferente según el lenguaje informático en el que se utilicen. La sintaxis general para ellos, por el contrario, es similar en la mayoría de los idiomas. Hay dos tipos diferentes de sintaxis que se pueden usar para iteradores, definidos como explícitos o implícitos.
Los iteradores explícitos implican la creación de un objeto iterador, y ese objeto se usa luego en un bucle transversal sobre los elementos de una colección. Los iteradores implícitos involucran un tipo especial de estructura de bucle que crea el objeto iterador sin que se especifique de antemano. El uso o no de iteradores explícitos o implícitos para cualquier recorrido en particular generalmente depende de la preferencia del programador, ya que las diferencias en la cantidad de código o rendimiento entre ellos son insignificantes. La mayor diferencia entre los iteradores explícitos e implícitos es que los iteradores explícitos muestran la creación de un iterador en el código fuente, mientras que los iteradores implícitos no muestran esto.
Siempre que haya una colección de objetos disponible, se puede usar un iterador para escanearlos. Dependiendo de las capacidades de un lenguaje de computadora, los iteradores se pueden usar en arreglos, mapas, listas y una variedad de otros tipos de colecciones. Los iteradores son una característica relativamente ubicua de los lenguajes de programación, y la mayoría de los lenguajes comunes tienen algún tipo de funcionalidad disponible. Algunos lenguajes de computadora permiten iteradores con características adicionales, como restricciones en la cantidad de veces que se accede a un elemento. Dado que estas características no son universales, a veces hay formas en las que se pueden implementar independientemente de los propios iteradores.