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

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++: revisión completa



La biblioteca estándar de C++ (C++ Standard Library) es un potente conjunto de clases, funciones, macros y plantillas que se incluye con cualquier compilador de C++. Proporciona soluciones listas para la mayoría de las tareas típicas: desde trabajar con contenedores de datos hasta la comunicación en red y el multihilo. En este artículo, analizaremos los componentes principales de la biblioteca, mostraremos ejemplos de código y explicaremos cómo utilizar eficazmente sus capacidades.



Componentes principales de la biblioteca estándar



La biblioteca estándar se divide en varias secciones principales:



  • STL (Standard Template Library) — contenedores, iteradores, algoritmos y objetos funcionales.
  • Entrada/Salida — flujos (iostream), flujos de archivos (fstream), flujos de cadenas (sstream).
  • Cadenas — clases std::string y std::string_view.
  • Operaciones numéricas — funciones matemáticas (cmath), números aleatorios (random), números complejos (complex).
  • Multihilo — hilos (thread), mutex, variables de condición.
  • Utilidades — std::optional, std::variant, std::any, punteros inteligentes (shared_ptr, unique_ptr).


Contenedores STL



Los contenedores son clases plantilla diseñadas para almacenar colecciones de objetos. Se dividen en secuenciales y asociativos.



Contenedores secuenciales



  • std::vector — arreglo dinámico. Acceso rápido por índice, inserción lenta en el medio.
  • std::deque — cola doble. Inserción/eliminación rápida en ambos extremos.
  • std::list — lista doblemente enlazada. Inserción/eliminación rápida en cualquier lugar, pero acceso lento por índice.


#include <iostream>#include <vector>

int main() { std::vector<int> numbers = {10, 20, 30, 40}; numbers.push_back(50); // Agregar al final for (int n : numbers) { std::cout << n << " "; } return 0;}


Contenedores asociativos



  • std::set — conjunto de elementos únicos (ordenado).
  • std::map — diccionario «clave-valor» (ordenado por clave).
  • std::unordered_set / std::unordered_map — tablas hash (no ordenadas, pero más rápidas).


#include <iostream>#include <map>

int main() { std::map<std::string, int> ages; ages["Alice"] = 30; ages["Bob"] = 25; for (const auto& [name, age] : ages) { std::cout << name << ": " << age << std::endl; } return 0;}


Algoritmos



La biblioteca <algorithm> contiene más de 100 algoritmos para trabajar con secuencias: ordenación, búsqueda, copia, transformación, etc. Todos los algoritmos funcionan a través de iteradores, lo que los hace universales.



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

int main() { std::vector<int> v = {5, 2, 8, 1, 9}; std::sort(v.begin(), v.end()); // Ordenación ascendente auto it = std::find(v.begin(), v.end(), 8); if (it != v.end()) { std::cout << "Encontrado: " << *it << std::endl; } return 0;}


Trabajo con cadenas



La clase std::string proporciona métodos convenientes para trabajar con texto: búsqueda, reemplazo, concatenación, comparación. En C++17 se agregó std::string_view para una vista no propietaria de cadenas.



#include                    

Recommendations