Olimpiada Oaxaqueña de Informática
  • Bienvenido a la Olimpiada Oaxaqueña de Informática
  • Temario
    • Introducción a la Programación
      • Definición de computadora
      • Definición de Sistema Operativo
      • Definición de lenguaje de programación
      • Definición de compilador
      • Sistema Binario y Hexadecimal
      • Operaciones AND, OR, NOT, XOR
      • Definición y ejemplo de algoritmos
      • Representación gráfica de un algoritmo
      • Qué es un pseudocódigo
        • Estructura base y Variables
        • Condicionales y ciclos
      • Configuración e instalación de compilador de C y C++
    • Lenguajes de Programación C y C++
      • Presentación de C y C++ como lenguajes de programación
      • Estructura de un programa en C++
        • Ejemplos de códigos en C++
      • Tipos de datos y variables
      • Entrada y salida de datos STDIN SDTOUT
      • Estructuras de Control y Repetición
      • Introducción a estructuras de datos: arreglos
    • Algoritmos de ordenamiento
      • Bubble Sort
    • Estructuras de datos
      • Pilas (Stack)
    • Paradigmas de Solución de Problemas
    • Gráfos
    • Matemáticas
    • Procesamiento de Cadenas
  • OOI 2019
    • Cursos online
      • Clase 1
      • Clase 2
      • Clase 3
      • Clase 4
      • Clase 5
      • Clase 6
      • Clase 7
      • Clase 8
      • Clase 9
      • Clase 10
      • Clase 11
      • Clase 12
      • Clase 13
      • Clase recursión introductorio
  • OOI 2020
    • Instrucciones para nuevos miembros
    • Cursos introductorios
      • Clase 1
      • Clase 2
      • Clase 3
      • Clase 4
      • Clase 5
      • Clase 6
      • Clase 7
      • Clase 8
      • Clase 9
      • Clase 10
      • Clase 11
      • Clase 12
      • Clase 13
      • Clase 14
      • Clase 15
      • Clase 16
      • Clase 17
      • Clase 18
      • Clase 19
      • Clase 20
      • Clase 21
      • Clase 22
    • Cursos avanzados
      • Temario
      • Sesión 1
      • Sesión 2
      • Sesión 3-4
      • Sesión 5
      • Sesión 6
      • Sesión 7
      • Sesión 8
      • Sesión 9-10
      • Sesión 11
      • Sesión 12
      • Sesión 13
      • Sesión 14
      • Sesión 15
      • Sesión 16
      • Sesión 17
      • Sesión 18
      • Sesión 19
      • Sesión 20
      • Sesión 21
      • Sesión 22
    • Cursos matemáticas discretas
      • Sesión 1
      • Sesión 2
  • OOI 2021
    • Fase 4. Semana 1
  • Misceláneos
    • Complejidad de un algoritmo
    • Tutorial instalación VS Code, compilador y debugger para C++
Powered by GitBook
On this page
  • Temas
  • Estructura de datos set
  • For each
  • Códigos vistos en clase
  1. OOI 2020
  2. Cursos avanzados

Sesión 13

Clase del 6 de abril de 2020. For each en C++ y set

Temas

Estructura de datos set

#include <iostream>
#include <vector>
#include <set>

using namespace std;

int main() {
    vector<int> datos =  {1, 5, 9, 2, 4, 3, 6, 10, 8, 7, 1, 5, 6, 6, 7};
    set<int> mi_set;
    // Insertar los datos en un set.
    // Esta estructura remueve duplicados y ordena los datos por defecto.
    for (int i = 0; i < datos.size(); i++) {
        mi_set.insert(datos[i]);
    }

    // Recorrer el set
    // Necesita un iterador para recorrer cada posicion del set.
    // Que es un iterador? Es un puntero que almacena la direccion de memoria a la que apunta.
    // <tipoDato>::iterator <nombreIterador>
    // set<int>::iterator it;  // <-- asi se declara un iterador a un set de enteros
    // Para recorrerlo, apuntamos al inicio (begin y luego aumentamos el iterador
    // hasta llegar al fin (end). Nota, cuando llegamos al fin es cuando it == end()
    for(set<int>::iterator it = mi_set.begin(); it != mi_set.end(); it++) {
        // Imprimir el valor al que apunta el iterador,
        // para esto necesitamos recuperar el valor al que apunta el iterador.
        // Esto se consigue utilizando el operador de desreferenciacion.
        cout << *it << " ";
    }

    return 0;
}

For each

#include <iostream>
#include <vector>
#include <set>
#include <string>

using namespace std;

int main() {
    vector<int> datos =  {1, 5, 9, 2, 4, 3, 6, 10, 8, 7, 1, 5, 6, 6, 7};
    set<int> mi_set;

    // Insertar los datos en el set.
    // Utilizar un for de C++11, conocido como foreach
    // Solo se puede utilizar el foreach con estructuras que tengan
    // un begin() y un end()
    for(int dato : datos) {
        mi_set.insert(dato);
    }

    // Utilizar un for de C++11 para recorrer el set
    for(int dato : mi_set) {
        cout << dato << " ";
    }
    cout << "\n";

    // Cambiar el valor de todos los datos en el vector por 1
    // int idx = 0;
    // while (idx < datos.size()) {
    //     int& x = datos[idx];
    //     x = 1; // datos[idx] = 1;
    //     idx++;
    // }
    for (int& x : datos) {
        x = 1;
    }

    // Imprimir los valores del vector
    for (auto x : datos) {
        cout << x << " ";
    }
    cout << "\n";

    string palabra = "Daniel";
    for (auto letra : palabra) {
        cout << letra << " ";
    }

    return 0;
}

Códigos vistos en clase

No hay video.

PreviousSesión 12NextSesión 14

Last updated 5 years ago

ooi-2020/curso-avanzado/sesion-13 at master · omioaxaca/ooi-2020GitHub
Logo