Namespaces
Variants

C++ Standard Library headers

From cppreference.net
Standard library headers

La interfaz de la biblioteca estándar de C++ está definida por la siguiente colección de encabezados.

Contenidos

Encabezados multipropósito

Utilidades de propósito general: control de programa , asignación de memoria dinámica , números aleatorios , ordenamiento y búsqueda
Políticas de ejecución predefinidas para las versiones paralelas de los algoritmos y componentes de control de ejecución (desde C++26)

Biblioteca de soporte del lenguaje

Límites de tipos de punto flotante
Límites de tipos integrales
(C++20)
Soporte para operador de comparación de tres vías
Biblioteca de soporte para contratos
Biblioteca de soporte para corrutinas
Macro (y función) que guarda (y salta) a un contexto de ejecución
Funciones y constantes de macro para gestión de señales
Manejo de listas de argumentos de longitud variable
Macros y definiciones de tipos estándar
(C++11)
Tipos de enteros de ancho fijo y límites de otros tipos
Utilidades de manejo de excepciones
std::initializer_list plantilla de clase
Consultar propiedades de tipos aritméticos
Utilidades de gestión de memoria de bajo nivel
Proporciona medios para obtener ubicación del código fuente
(C++23)
Tipos de punto flotante de ancho fijo
std::type_index
Utilidades de información de tipos en tiempo de ejecución
(C++20)
Proporciona macros para verificar el estado de implementación de la biblioteca

Biblioteca de Conceptos

(C++20)
Conceptos fundamentales de la biblioteca

Biblioteca de Diagnósticos

Macro compilado condicionalmente que compara su argumento con cero
Macro que contiene el último número de error
Biblioteca de depuración
Biblioteca Stacktrace
Tipos de excepción estándar
Define std::error_code , un código de error dependiente de la plataforma

Biblioteca de gestión de memoria

Utilidades de gestión de memoria de alto nivel
Asignadores polimórficos y recursos de memoria
Clase de asignador anidado

Biblioteca de Metaprogramación

(C++11)
Aritmética racional en tiempo de compilación
Utilidades de información de tipos en tiempo de compilación

Biblioteca de utilidades generales

(C++17)
std::any clase
(C++20)
Funciones de manipulación de bits
std::bitset plantilla de clase
(C++23)
std::expected plantilla de clase
Objetos función, Invocaciones de función, Operaciones de enlace y Wrappers de referencia
(C++17)
std::optional plantilla de clase
(C++11)
std::tuple plantilla de clase
Varios componentes de utilidad
(C++17)
std::variant plantilla de clase

Biblioteca de contenedores

(C++11)
std::array contenedor
std::deque contenedor
(C++23)
std::flat_map y std::flat_multimap adaptadores de contenedor
(C++23)
std::flat_set y std::flat_multiset adaptadores de contenedor
std::forward_list contenedor
(C++26)
std::hive contenedor
std::inplace_vector contenedor
std::list contenedor
std::map y std::multimap contenedores asociativos
(C++23)
std::mdspan vista
std::queue y std::priority_queue adaptadores de contenedor
std::set y std::multiset contenedores asociativos
(C++20)
std::span vista
std::stack adaptador de contenedor
std::unordered_map y std::unordered_multimap contenedores asociativos no ordenados
std::unordered_set y std::unordered_multiset contenedores asociativos no ordenados
std::vector contenedor

Biblioteca de iteradores

Iteradores de rango

Biblioteca de Ranges

std::generator plantilla de clase
(C++20)
Acceso a rangos, primitivas, requisitos, utilidades y adaptadores

Biblioteca de algoritmos

Algoritmos que operan sobre rangos
Operaciones numéricas sobre valores en rangos

Biblioteca de cadenas

Varias funciones de manejo de cadenas de caracteres estrechos
std::basic_string plantilla de clase
std::basic_string_view plantilla de clase

Biblioteca de procesamiento de texto

Funciones para determinar la categoría de caracteres estrechos
(C++17)
std::to_chars y std::from_chars
Utilidades de localización de C
(C++11) (obsoleto en C++17) (eliminado en C++26)
Facilidades de conversión Unicode
(C++11)
Funciones de conversión de caracteres Unicode estilo C
Varias funciones de manejo de cadenas anchas y multibyte
Funciones para determinar la categoría de caracteres anchos
(C++20)
Biblioteca de formato incluyendo std::format
Utilidades de localización
(C++11)
Clases, algoritmos e iteradores para soportar el procesamiento de expresiones regulares
Identificaciones de codificación de texto

Biblioteca de Numerics

(C++11)
Funciones de acceso al entorno de punto flotante
Funciones matemáticas comunes
Tipo de número complejo
(C++26)
Algoritmos básicos de álgebra lineal (BLAS)
(C++20)
Constantes matemáticas
(C++11)
Generadores de números aleatorios y distribuciones
(C++26)
Tipos de datos paralelos y operaciones sobre estos tipos
Clase para representar y manipular arrays de valores

Biblioteca de Tiempo

(C++11)
Utilidades de tiempo de C++
Utilidades de fecha/hora estilo C

Biblioteca de entrada/salida

Macros de formato , intmax_t y uintmax_t matemáticas y conversiones
Funciones de entrada-salida estilo C
std::filesystem::path clase y funciones de soporte
std::basic_fstream , std::basic_ifstream , std::basic_ofstream plantillas de clase y typedefs
Funciones auxiliares para controlar el formato de entrada y salida
std::ios_base clase, std::basic_ios plantilla de clase y definiciones de tipo
Declaraciones anticipadas de todas las clases en la biblioteca de entrada/salida
Varios objetos de flujo estándar
std::basic_istream plantilla de clase y definiciones de tipos
std::basic_ostream , std::basic_iostream plantillas de clase y typedefs
(C++23)
Biblioteca de salida formateada que incluye std::print
std::basic_spanstream , std::basic_ispanstream , std::basic_ospanstream plantillas de clase y definiciones de tipos
std::basic_stringstream , std::basic_istringstream , std::basic_ostringstream plantillas de clase y typedefs
std::basic_streambuf plantilla de clase
(obsoleto en C++98) (eliminado en C++26)
std::strstream , std::istrstream , std::ostrstream
std::basic_osyncstream , std::basic_syncbuf y typedefs

Biblioteca de soporte para concurrencia

(C++11)
Biblioteca de operaciones atómicas
(C++20)
Barreras
Condiciones de espera de hilos
(C++11)
Primitivas para cómputos asíncronos
Punteros de riesgo
(C++20)
Cerraduras
(C++11)
Primitivas de exclusión mutua
(C++26)
Mecanismos de actualización read-copy
Semáforos
Primitivas de exclusión mutua compartida
Tokens de parada para std::jthread
(C++11)
std::thread clase y funciones de soporte

Encabezados de compatibilidad con C

Para algunas de las cabeceras de la biblioteca estándar de C con el formato xxx .h , la biblioteca estándar de C++ incluye tanto una cabecera con el mismo nombre como otra cabecera con el formato c xxx (todas las cabeceras significativas c xxx están listadas arriba). El uso previsto de las cabeceras con formato xxx .h es solo para interoperabilidad. Es posible que los archivos fuente de C++ necesiten incluir una de estas cabeceras para ser válidos según ISO C. Los archivos fuente que no están destinados a ser también válidos según ISO C no deben usar ninguna de las cabeceras de C.

Con la excepción de complex.h , cada cabecera xxx .h incluida en la biblioteca estándar de C++ coloca en el espacio de nombres global cada nombre que la correspondiente cabecera c xxx habría colocado en el espacio de nombres std .

Estos encabezados pueden declarar también los mismos nombres en el std namespace, y los correspondientes c xxx encabezados pueden declarar también los mismos nombres en el espacio de nombres global: incluir <cstdlib> definitivamente proporciona std::malloc y puede también proporcionar :: malloc . Incluir <stdlib.h> definitivamente proporciona :: malloc y puede también proporcionar std::malloc . Esto aplica incluso a funciones y sobrecargas de funciones que no forman parte de la biblioteca estándar de C.

Notas: xxx .h los headers están obsoletos en C++98 y rehabilitados en C++23. Estos headers están desaconsejados para código C++ puro, pero no están sujetos a eliminación futura.

Se comporta igual que <cassert>
Se comporta como si cada nombre de <cctype> se colocara en el espacio de nombres global
Se comporta igual que <cerrno>
(C++11)
Se comporta como si cada nombre de <cfenv> se colocara en el espacio de nombres global
Se comporta igual que <cfloat>
Se comporta como si cada nombre de <cinttypes> se colocara en el espacio de nombres global
Se comporta igual que <climits>
Se comporta como si cada nombre de <clocale> se colocara en el espacio de nombres global
Se comporta como si cada nombre de <cmath> se colocara en el espacio de nombres global,
excepto los nombres de funciones matemáticas especiales
Se comporta como si cada nombre de <csetjmp> se colocara en el espacio de nombres global
Se comporta como si cada nombre de <csignal> se colocara en el espacio de nombres global
Se comporta como si cada nombre de <cstdarg> se colocara en el espacio de nombres global
Se comporta como si cada nombre de <cstddef> se colocara en el espacio de nombres global,
excepto los nombres de std::byte y funciones relacionadas
(C++11)
Se comporta como si cada nombre de <cstdint> se colocara en el espacio de nombres global
Se comporta como si cada nombre de <cstdio> se colocara en el espacio de nombres global
Se comporta como si cada nombre de <cstdlib> se colocara en el espacio de nombres global
Se comporta como si cada nombre de <cstring> se colocara en el espacio de nombres global
Se comporta como si cada nombre de <ctime> se colocara en el espacio de nombres global
(C++11)
Se comporta como si cada nombre de <cuchar> se colocara en el espacio de nombres global
Se comporta como si cada nombre de <cwchar> se colocara en el espacio de nombres global
Se comporta como si cada nombre de <cwctype> se colocara en el espacio de nombres global

Encabezados especiales de compatibilidad con C

Los encabezados <stdatomic.h> , <stdbit.h> , y <stdckdint.h> declaran nombres que también se proporcionan en la biblioteca estándar de C. El encabezado <stdatomic.h> también define la macro _Atomic que es una palabra clave en C. A diferencia de otros encabezados < xxx .h> , no se proporcionan los correspondientes <cstdatomic> , <cstdbit> , y <cstdckdint> .

Define _Atomic y proporciona los componentes correspondientes en la biblioteca estándar de C
(C++26)
Proporciona los componentes correspondientes en la biblioteca estándar de C
Proporciona los componentes correspondientes en la biblioteca estándar de C

Encabezados C vacíos

Los encabezados <complex.h> , <ccomplex> , <tgmath.h> , y <ctgmath> no contienen ningún contenido de la biblioteca estándar de C y simplemente incluyen otros encabezados de la biblioteca estándar de C++.

(C++11) (deprecated in C++17) (removed in C++20)
Simplemente incluye el encabezado <complex>
Simplemente incluye el encabezado <complex>
(C++11) (deprecated in C++17) (removed in C++20)
Simplemente incluye los encabezados <complex> y <cmath> : las sobrecargas equivalentes al contenido del encabezado C <tgmath.h> ya están proporcionadas por esos encabezados
(C++11)
Simplemente incluye los encabezados <complex> y <cmath>

Encabezados C sin sentido

Los encabezados <ciso646> , <cstdalign> , y <cstdbool> carecen de significado en C++ porque las macros que proporcionan en C son palabras clave del lenguaje en C++.

(eliminado en C++20)
Cabecera vacía. Las macros que aparecen en iso646.h en C son palabras clave en C++
(C++11) (obsoleto en C++17) (eliminado en C++20)
Define constantes de macro de compatibilidad __alignas_is_defined y __alignof_is_defined
(C++11) (obsoleto en C++17) (eliminado en C++20)
Define una constante de macro de compatibilidad __bool_true_false_are_defined
No tiene efecto
Define constantes de macro de compatibilidad __alignas_is_defined y __alignof_is_defined
Define una constante de macro de compatibilidad __bool_true_false_are_defined

Encabezados C no compatibles

Los encabezados de C <stdatomic.h> , (hasta C++23) <stdnoreturn.h> , y <threads.h> no están incluidos en C++ y no tienen equivalentes c xxx .

Bibliotecas experimentales

TR's/TS's de C++ también definen varias colecciones de headers.

Véase también

Documentación de C para encabezados de la Biblioteca Estándar