Contenedores en C++ STL (Biblioteca de plantillas estándar)

Un contenedor es un objeto contenedor que almacena una colección de otros objetos (sus elementos). Se implementan como plantillas de clase, lo que permite una gran flexibilidad en los tipos admitidos como elementos. 

El contenedor gestiona el espacio de almacenamiento de sus elementos y proporciona funciones miembro para acceder a ellos, ya sea directamente o mediante iteradores (objetos de referencia con propiedades similares a los punteros). 

Contenedores de secuencia

Los contenedores de secuencia implementan estructuras de datos a las que se puede acceder secuencialmente. 

  • array: array contigua estática (plantilla de clase)
  • vector: array contigua dinámica (plantilla de clase)
  • deque: cola de dos extremos (plantilla de clase)
  • forward_list: lista de enlaces simples (plantilla de clase)
  • lista: lista doblemente enlazada (plantilla de clase)

contenedores asociativos

Los contenedores asociativos implementan estructuras de datos ordenados que se pueden buscar rápidamente (complejidad O(log n)). 

  • Conjunto: colección de claves únicas, ordenadas por claves 
    (plantilla de clase)
  • Mapa: colección de pares clave-valor, ordenados por claves, las claves son únicas (plantilla de clase).
  • multiset: colección de claves, ordenadas por claves (plantilla de clase)
  • multimapa: colección de pares clave-valor, ordenados por claves 
    (plantilla de clase)

Contenedores asociativos desordenados

Los contenedores asociativos no ordenados implementan estructuras de datos no ordenadas (hash) que se pueden buscar rápidamente (O(1) amortizado, O(n) complejidad en el peor de los casos). 

  • unordered_set: colección de claves únicas, codificadas por claves. (plantilla de clase)
  • unordered_map: colección de pares clave-valor, con hash por claves, las claves son únicas. (plantilla de clase)
  • unordered_multiset: colección de claves, hash por claves (plantilla de clase)
  • unordered_multimap: Colección de pares clave-valor, hash por claves (plantilla de clase)

Adaptadores de contenedores

Los adaptadores de contenedor proporcionan una interfaz diferente para contenedores secuenciales. 

  • pila: adapta un contenedor para proporcionar pila (estructura de datos LIFO) (plantilla de clase).
  • cola: adapta un contenedor para proporcionar cola (estructura de datos FIFO) (plantilla de clase).
  • Priority_queue: adapta un contenedor para proporcionar una cola de prioridad (plantilla de clase). 
     

Diagrama de flujo de contenedores adaptativos y contenedores desordenados

Diagrama de flujo de contenedores de secuencia y contenedores ordenados

Más enlaces útiles 

Para dominar la biblioteca de plantillas estándar (STL) de C++ de la manera más eficiente y efectiva, consulte este curso en línea de C++ STL de GeeksforGeeks. El curso cubre los conceptos básicos de C++ y explicaciones detalladas de todos los contenedores STL, iteradores, etc. de C++, junto con explicaciones en video de algunos problemas. Además, aprenderá a usar clases y funciones incorporadas de STL para implementar algunas de las estructuras de datos complejas y realizar operaciones en ellas de manera conveniente.

Publicación traducida automáticamente

Artículo escrito por ayushmaan bansal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *