👨‍💻
Coding Library
  • 👨‍💻Coding Library
  • 👾Linux
    • Basic Commands
    • Other commands
      • Ls
      • Mv
      • Chmod
      • Ln
      • Cat
      • Wc
      • Grep
      • Sed
      • Find
    • Sistema de ficheros
      • Inodos
  • 📦Git
    • Page 3
  • 🖊️Vim
    • Vim Basics
      • Gramatica de Vim
      • Moviendote por un archivo
    • Todo y mas
  • 🏛️C
    • Estructuras de datos
      • Listas Enlazadas
      • Colas
      • Pilas
      • Arboles
    • Valgrind
    • Operadores de bits
    • Procesos e Hilos
      • Fork
      • Wait
      • Waitpid
      • Semáforos
      • Estructura sigaction
      • Signals
    • MiniLibX
      • Ventanas (windows)
      • Imprimir Pixels
      • Imagenes
      • Colores
      • Eventos
      • Loops (bucles)
      • Leer imagenes
    • Readline
    • Funciones
      • opendir
      • access
    • Network Programming
      • Structs
      • Llamadas al sistema
      • Synchronous I/O Multiplexing
        • kqueue
  • 🌃C++
    • Clases
      • Herencia
      • Shallow and deeps copies
      • Clases abstractas y Interfaces
      • Reasignar operadores
    • Punteros y referencias
    • Manejo de ficheros
    • Punteros a funciones
    • Excepciones
    • Casting
    • Templates
    • Templated Containers
      • Iterators
      • std::vector
      • std::list
      • std::map
  • 🧠Pyhton
    • Sintaxis basica
    • Scripts
    • Tipos de datos
      • Listas
      • Set
      • Diccionarios
      • Generadores
    • Estructuras de control
      • Iterar con For
      • Iterar con zip
      • Iterar con enumerate
    • Map, Filter and Reduce
    • Funciones
    • Clases
      • Metodos
      • Herencia
    • Formateo con {} y format()
    • Decoradores
  • 📦JAVA
    • Conceptos basicos
    • Programacion estructurada
    • Clases predefinidas
    • POO
      • Clases
      • Herencia
      • Polimorfismo
      • Abstraccion
      • Encapsulacion
    • ArrayList
    • Excepciones
  • ⚒️HTML
    • HTML Basics
    • Elementos de bloque
      • Titulos y parrafos
      • Header, Main y Footer
      • Section, article y aside
    • Elementos en línea
    • Atributos
    • Enlaces <a>
    • Listas
    • Tablas
    • Formularios
      • Input
      • Select y datalist
      • GET y POST
    • Contenido embebido
      • Imagenes
      • Audio y video
      • Iframe
  • 🎨CSS
    • Introduccion
    • Selectores
    • Como funciona CSS
    • Box Model
    • Desbordamiento y Colapso de margenes
    • Display
    • Position
    • Medidas absolutas y relativas
  • 🟡JavaScript
    • Promesas
    • Async/Await
  • 📲Svelte
    • Componentes
    • Reactividad
    • Directivas
    • Eventos
  • 🖥️Sistemas
    • Particiones
  • 🕸️Redes
    • IP Adress
    • Subnet Mask
  • 🕷️Web Scrapping
    • Scrapy
      • Spiders
        • CrawlerSpider
      • Process data
      • Save data
        • CSV y JSON
        • SQLite
    • Splash
    • Selenium
Powered by GitBook
On this page
  • Tipos de Iteradores
  • Uso de Iteradores
  1. C++
  2. Templated Containers

Iterators

Los iteradores son herramientas esenciales en C++ que permiten acceder y recorrer los elementos de contenedores y secuencias de datos de manera eficiente. Proporcionan una abstracción que facilita la manipulación de datos sin preocuparse por los detalles internos de la estructura de datos. Los iteradores permiten recorrer los elementos en cualquier dirección (adelante o atrás) y son una parte fundamental de la Biblioteca Estándar de C++.

Tipos de Iteradores

En C++, existen varios tipos de iteradores, cada uno diseñado para trabajar con diferentes tipos de contenedores y sus características. Los tipos más comunes son:

Iteradores de Contenedor

Los iteradores de contenedor permiten recorrer y acceder a los elementos de contenedores como vectores, listas y mapas. Proporcionan formas de acceder al principio, final y otros puntos en el contenedor para realizar operaciones en los elementos.

  • begin: Apunta al primer elemento del contenedor.

  • end: Apunta a una posición más allá del último elemento del contenedor.

  • rbegin: Apunta al último elemento del contenedor.

  • rend: Apunta a una posición antes del primer elemento del contenedor al revés.

std::vector<int> numbers = {1, 2, 3, 4, 5};
for (auto it = numbers.begin(); it != numbers.end(); ++it) {
    std::cout << *it << " ";
}

Iteradores de Flujo

Los iteradores de flujo simplifican la lectura y escritura de datos a través de flujos de entrada y salida, como la entrada estándar y la salida estándar. Facilitan la interacción con flujos al proporcionar una forma de acceder y operar en datos en un estilo similar al de los contenedores.

  • istream_iterator: Lee valores de entrada de flujo.

  • ostream_iterator: Escribe valores en un flujo de salida.

std::vector<int> numbers;
std::istream_iterator<int> input_it(std::cin);
std::copy(input_it, std::istream_iterator<int>(), std::back_inserter(numbers));

Este código crea un vector de enteros llamado numbers. Luego, utiliza un iterador de flujo input_it para leer enteros de la entrada estándar (std::cin). Mediante la función std::copy, los valores leídos se insertan en el vector numbers usando std::back_inserter. Esto permite llenar el vector con valores ingresados desde la entrada estándar.

Uso de Iteradores

Los iteradores permiten recorrer y manipular elementos en contenedores de manera uniforme. Pueden usarse en bucles para realizar operaciones en cada elemento o acceder a un elemento específico.

std::list<std::string> words = {"hello", "world", "example"};
std::list<std::string>::iterator it = words.begin();
std::advance(it, 2); // Avanzar 2 posiciones
std::cout << *it << std::endl; // Imprime "example"
PreviousTemplated ContainersNextstd::vector

Last updated 1 year ago

🌃