Saltar al contenido principal

Estructuras de datos en C++

Estructuras de datos en C++

Las estructuras de datos son aquellas que nos permiten almacenar datos en el programa. Tenemos estos tipos de estructuras de datos:

Estas son estructuras de datos que almacenan colecciones de objetos.

  • vector: Un arreglo dinámico. Tu contenedor más utilizado.

    • v.push_back(x): Agregar elemento al final. (O(1)) en promedio.
    • v.size(): Obtener el número de elementos.
    • v[i]: Acceder al elemento en el índice i.
    • v.begin(), v.end(): Obtener iteradores al inicio y final.
  • set: Almacena elementos únicos en orden ordenado.

    • s.insert(x): Insertar un elemento. (O(log N)).
    • s.count(x): Verificar si un elemento existe. (O(log N)).
    • s.erase(x): Eliminar un elemento. (O(log N)).
  • map: Almacena pares clave-valor, ordenados por clave.

    • m[key] = value: Insertar/actualizar un par clave-valor. (O(log N)).
    • m.count(key): Verificar si una clave existe. (O(log N)).
  • stack: Estructura Último en entrar, Primero en salir (LIFO).

    • st.push(x), st.pop(), st.top(), st.empty().
  • queue: Estructura Primero en entrar, Primero en salir (FIFO).

    • q.push(x), q.pop(), q.front(), q.empty().
  • priority_queue: Una cola donde el elemento más grande (por defecto) siempre está al frente.

    • pq.push(x), pq.pop(), pq.top(), pq.empty() .
  • unordered_map / unordered_set: Versiones con hash de map/set. Son mucho más rápidas en promedio (O(1)) pero no mantienen los elementos ordenados. Usa estas por defecto a menos que necesites ordenamiento.