Biblioteca estándar de C++: revisión completa y ejemplos de código

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Biblioteca Estándar de C++: Visión General Completa



La biblioteca estándar de C++ (a menudo llamada STL — Standard Template Library) es un potente conjunto de clases y funciones plantilla que forma parte de cualquier compilador de C++. Proporciona soluciones listas, probadas y optimizadas para las tareas de programación más comunes: desde trabajar con arrays dinámicos y cadenas hasta complejos algoritmos de ordenación y búsqueda. El uso de la biblioteca estándar acelera significativamente el desarrollo, aumenta la fiabilidad del código y facilita su mantenimiento.



En este artículo, analizaremos en detalle los componentes principales de la biblioteca estándar de C++: contenedores, algoritmos, iteradores, cadenas, flujos de entrada/salida y punteros inteligentes. Cada sección irá acompañada de ejemplos prácticos de código.



Contenedores (Containers)



Los contenedores son clases diseñadas para almacenar y organizar conjuntos de datos. Se dividen en tres categorías principales:



  • Contenedores secuenciales: almacenan elementos en orden lineal. Principales representantes: std::vector (array dinámico), std::list (lista doblemente enlazada), std::deque (cola doble).
  • Contenedores asociativos: almacenan elementos de forma ordenada, proporcionando una búsqueda rápida. Ejemplos: std::set (conjunto), std::map (diccionario "clave-valor").
  • Contenedores asociativos no ordenados (C++11): utilizan tablas hash para un acceso aún más rápido. Ejemplos: std::unordered_set, std::unordered_map.


Ejemplo de trabajo con std::vector y std::map:



#include <iostream>#include <vector>#include <map>#include <string>

int main() { // Contenedor secuencial std::vector<int> numbers = {10, 20, 30, 40}; numbers.push_back(50); // Añadir al final

std::cout << "Vector: "; for (int n : numbers) { std::cout << n << " "; } std::cout << std::endl;

// Contenedor asociativo std::map<std::string, int> ages; ages["Alice"] = 30; ages["Bob"] = 25;

std::cout << "Edad de Alice: " << ages["Alice"] << std::endl; return 0;}


Iteradores (Iterators)



Los iteradores son una forma generalizada de acceder a los elementos de un contenedor. Funcionan como "punteros inteligentes" y permiten recorrer cualquier contenedor de manera uniforme. Los tipos principales de iteradores son: begin() (puntero al primer elemento) y end() (puntero al elemento después del último).



Ejemplo de uso de un iterador para recorrer un std::list:



#include <iostream>#include <list>

int main() { std::list<double> prices = {19.99, 29.99, 9.99};

// Uso del iterador for (auto it = prices.begin(); it != prices.end(); ++it) { std::cout << *it << " "; } std::cout << std::endl; return 0;}


Algoritmos (Algorithms)



La biblioteca <algorithm> contiene decenas de funciones listas para trabajar con secuencias de datos: ordenación, búsqueda, copia, transformación y mucho más. Los algoritmos trabajan con iteradores, lo que los hace universales.



Algoritmos populares:

  • std::sort — ordenación de un rango.
  • std::find — búsqueda de la primera ocurrencia de un valor.
  • std::copy — copia de elementos.
  • std::accumulate — suma de elementos (de <numeric>).


Ejemplo de ordenación y búsqueda:



#include <iostream>#include <vector>#include <algorithm>

int main() { std::vector<int> data = {5, 2, 8, 1, 9

Recommendations