iterators stl
Una descripción completa de los iteradores en STL.
En este tutorial, veremos los detalles de los iteradores, sus tipos, ventajas y las diversas funciones que admiten.
cómo abrir un archivo swf en Chrome
¿Qué es un iterador? En general, un iterador es como cualquier objeto que apunta a un elemento particular en un rango de datos como una matriz o un contenedor. Un iterador es como un puntero en C.
=> Busque toda la serie de formación en C ++ aquí.
Lo que vas a aprender:
- Visión general
- Tipos de iteradores
- Ventajas de los iteradores
- Funciones de iterador
- Conclusión
- Lectura recomendada
Visión general
En STL, un iterador es un objeto que se puede usar para recorrer o recorrer los elementos en el contenedor usando un conjunto de operadores como operador de incremento (++) o operador de desreferencia (*).
Los iteradores son cruciales en la programación STL, ya que juegan un papel importante en la conexión de los algoritmos al contenedor, además de acceder y manipular los datos almacenados dentro de los contenedores.
Tipos de iteradores
Dependiendo de la funcionalidad implementada por los iteradores, se clasifican de la siguiente manera:
- Iteradores de entrada y salida : Estos son los tipos de iteradores más simplificados. Son más útiles en operaciones secuenciales de entrada-salida que contienen un solo paso.
- Iteradores directos : Estos son como iteradores de entrada pero tienen una dirección, es decir, dirección de avance en el sentido de que se pueden usar para atravesar un rango en la dirección de avance. Cuando los iteradores de avance no son constantes, también se pueden usar como iteradores de salida. La mayoría de los contenedores STL estándar al menos admiten iteradores de avance.
- Iteradores bidireccionales : Son similares a los iteradores de reenvío con la única diferencia de que son bidireccionales. Esto significa que podemos usar estos iteradores bidireccionales para atravesar el rango tanto en dirección hacia adelante como hacia atrás.
- Iteradores de acceso aleatorio : Los iteradores de acceso aleatorio son los más poderosos entre todos los iteradores. Estos son iteradores no secuenciales. Los iteradores de acceso aleatorio nos permiten acceder a cualquier valor aleatorio aplicando un desplazamiento al valor actual sin tener que pasar por cada elemento secuencialmente. Presentan propiedades similares a las de los punteros en C.
Una cosa a tener en cuenta es que no todos los contenedores STL admiten todos los iteradores. Los diferentes contenedores admiten diferentes iteradores en función de los requisitos de su funcionalidad.
A continuación se muestra la lista de contenedores que utilizan diferentes iteradores:
Contenedores | Iteradores |
---|---|
Mapa | Bidireccional |
Apilar | Sin iterador |
Cola | Sin iterador |
Cola de prioridad | Sin iterador |
Lista | Bidireccional |
Vector | Acceso aleatorio |
y | Acceso aleatorio |
Multimapa | Bidireccional |
Colocar | Bidireccional |
Multiset | Bidireccional |
Ventajas de los iteradores
Los iteradores son extremadamente útiles, especialmente cuando se programa con diferentes rangos y contenedores.
Algunas de las ventajas de usar iteradores en la programación se pueden resumir a continuación:
# 1) Reutilización de código
Siempre que usemos iteradores para acceder a elementos en nuestro programa, podemos simplemente cambiar el nombre del contenedor en nuestra definición de iterador y usar el resto del código de manera similar siempre que necesitemos cambiar el contenedor.
Esto es especialmente útil en escenarios donde planeamos reemplazar un contenedor de vector usando un contenedor de lista. Si en lugar de iteradores usáramos el operador [], el código para acceder a los elementos sería inútil cuando cambiamos los contenedores.
# 2) Facilidad y conveniencia de programar
Los iteradores vienen con varias funciones integradas que nos ayudan a atravesar y acceder al contenido del contenedor de manera fácil y conveniente.
Por ejemplo , no necesitamos seguir revisando el final de la lista o como un arreglo que tenemos que hacer mientras usamos los operadores [] y necesitamos alterar el código del programa como cuando queremos agregar elementos, y necesitamos cambiarlos para un ciclo .
Cuando usamos iteradores podemos acceder directamente a las funciones begin () y end () de los iteradores sin tener que mantener una pestaña activada cuando llegamos al final de la lista y tampoco necesitamos cambiarlas por un ciclo.
# 3) Agregar / quitar dinámico
Mientras usamos iteradores, podemos agregar o eliminar de manera fácil y dinámica los elementos en el contenedor sin tener que desplazar los elementos como tenemos que hacer en los operadores [].
Demostremos esto con el siguiente ejemplo:
|_+_|Producción:
Contenido del vector después de la adición
3 1 1 2
Contenidos vectoriales después de la eliminación
3 1 2
Como se ve en el ejemplo anterior, vemos que usando iteradores podemos fácilmente agregar o quitar elementos de un contenedor (vector en este caso), sin tener que recurrir a la compleja programación de cambiar elementos y reestructurar el contenedor.
Funciones de iterador
Como los iteradores en sí son construcciones integradas, admiten varias operaciones que se pueden realizar en objetos iteradores. Estas operaciones / funciones nos permiten atravesar eficientemente el rango y también manipular los elementos dentro del contenedor.
Ahora veremos algunas operaciones importantes que admiten los iteradores.
- comenzar: Devuelve la primera posición o la posición inicial del iterador.
- fin: Devuelve la última posición o la posición 'después del final' del iterador.
- anterior: Devuelve el nuevo iterador después de disminuir el número de posiciones dadas en el argumento.
- próximo: Devuelve un nuevo iterador después de avanzar o incrementar el número de posiciones dadas en el argumento.
- insertador: Inserta el elemento en cualquier posición dada en un contenedor.
- avance: Incrementa la posición del iterador al número especificado en el argumento.
Demostraremos el uso de algunas de estas funciones / operaciones en el siguiente programa:
|_+_|Producción:
Usando next () el nuevo iterador está en: 2
La posición del nuevo iterador usando prev () es: 3
Después de la operación de avance, itr1 se coloca en: 3
Usando el programa anterior, hemos demostrado el uso de varias operaciones de iterador.
Conclusión
Por tanto, hemos llegado al final de este tutorial sobre iteradores.
Hasta ahora hemos discutido los conceptos básicos de STL, a partir de nuestro próximo tutorial comenzaremos con los contenedores STL y su programación.
=> Consulte la serie completa de formación GRATUITA de C ++ aquí.
Lectura recomendada
- Cola de prioridad en STL
- Matrices en STL
- 70+ MEJORES Tutoriales de C ++ para aprender programación C ++ GRATIS
- Cuerdas, pares y tuplas en STL
- CONFIGURAR EN STL
- Algoritmos en STL
- La mejor serie de tutoriales de C # GRATIS: la guía definitiva de C # para principiantes
- Biblioteca de plantillas estándar (STL): una breve introducción