Biblioteca estándar de C++

En el lenguaje de programación C++ , el término Biblioteca estándar significa una colección de clases y funciones escritas en el lenguaje base . La biblioteca estándar admite varios contenedores principales, funciones para trabajar con estos contenedores, objetos de función, tipos básicos de cadenas y secuencias (incluidas E/S interactivas y de archivos), compatibilidad con algunas funciones de lenguaje y funciones de uso común para realizar tareas como, encontrar la raíz cuadrada de un número. La biblioteca estándar C++ también incluye las especificaciones de la biblioteca estándar ISO C90 C. La funcionalidad de la biblioteca estándar se declara dentro del espacio de nombres estándar .

La biblioteca de plantillas estándar (STL) es un subconjunto de la biblioteca estándar de C++ y contiene contenedores, algoritmos, iteradores, objetos de función, etc. [1] aunque algunos programadores usan el término "STL" junto con (o indistintamente) el término "Biblioteca estándar de C++" ".

Los archivos de encabezado de la biblioteca estándar de C++ no tienen la extensión ".h".

La biblioteca estándar de C++ contiene las extensiones ANSI C++ más recientes (incluida la biblioteca de plantillas estándar y la nueva biblioteca iostream). Es un conjunto de archivos de cabecera. A los nuevos archivos de encabezado les falta la extensión H. [2]

Archivos de encabezado estándar

Los siguientes archivos contienen declaraciones de la biblioteca estándar.

Contenedores

<conjunto de bits> Implementa una clase contenedora especializada std::bitset , el mapa de bits . <deque> Implementa la plantilla de clase contenedora std::deque , cola doblemente enlazada . <lista> Implementa la plantilla de clase contenedora std::list , lista doblemente enlazada . <mapa> Implementa plantillas de clases de contenedor std::map y std::multimap- Arreglos Asociativos y Multimapping . <cola> Implementa la clase contenedor-adaptador , una colastd::queue  unidireccional . <conjunto> Implementa plantillas de clase de contenedor std::sety conjuntosstd::multiset  o contenedores asociativos ordenados . <pila> Implementa la clase de contenedor de adaptadores std::stack , la pila . <vector> Implementa la plantilla de clase de contenedor std::vector , la matriz dinámica .

generales

<algoritmo> Implementa las definiciones de muchos algoritmos para trabajar con contenedores. <funcional> Implementa varios objetos de función diseñados para trabajar con algoritmos estándar. <iterador> Implementa clases y plantillas para trabajar con iteradores . <configuración regional> Implementa clases y plantillas para trabajar con entornos locales . <recuerdo> Implementa herramientas de administración de memoria de C++ , incluido std::auto_ptr. <stdexcept> Contiene el manejo de errores estándar de clases como std::logic_errory std::runtime_error, ambas derivadas de std::exception. <utilidad> Implementa una plantilla de clase std::pairpara trabajar con pares ( tuplas de dos miembros ) de objetos.

Cuerdas

<cadena> Implementa clases y plantillas de cadenas estándar.

<regex>

Nuevo en C++11 . Proporciona utilidades para cadenas de coincidencia de patrones utilizando expresiones regulares .

Streaming y E/S

<fstream> Implementa herramientas para la entrada y salida de archivos. Ver fstream . <ios> Implementa varios tipos y funciones que forman la base de las operaciones con iostreams. <iostream> Implementa la entrada y salida básica del lenguaje C++. Véase iostream . <iosfwd> Implementa declaraciones directas para varias plantillas de clase relacionadas con E/S. <iomanip> Implementa herramientas para trabajar con formato de salida, como base , que se utiliza al formatear valores enteros y exactos de números de punto flotante . <istream> Implementa la plantilla de clase std::istreamy otras clases de entrada necesarias. <flujo> Implementa la plantilla de clase std::ostreamy otras clases necesarias para la salida. <flujo> Implementa una plantilla de clase std::sstreamy otras clases necesarias para trabajar con cadenas. <streambuf>

Numérico

<complejo> Implementa la plantilla de clase std::complexy funciones relacionadas para trabajar con números complejos . <numérico> Implementa algoritmos para el procesamiento numérico. <valarray> Implementa una plantilla de clase , una std::valarray clase de matriz que está optimizada para el procesamiento numérico.

Soporte de idiomas

<excepción> Implementa varios tipos y funciones relacionadas con el manejo de excepciones , incluida std::exception la clase base para todo el manejo de excepciones en la Biblioteca estándar. <límites> implementa la plantilla de clase std::numeric_limitsutilizada para describir las propiedades de los tipos numéricos básicos. <nuevo> Implementa los operadores newy delete, así como otras funciones y tipos que forman la base de la gestión de memoria en C++. <typeinfo> Implementa herramientas para trabajar con identificación dinámica de tipos de datos en C++.

Biblioteca estándar de C

Cada archivo de encabezado de la biblioteca estándar de C se incluye en la biblioteca estándar de C++ con varios nombres creados cortando la extensión .h y agregando 'c' al principio, por ejemplo, 'time.h' se convirtió en 'ctime'. La única diferencia entre estos archivos de encabezado y los archivos de encabezado de la biblioteca estándar C tradicional es que las funciones deben colocarse en el espacio de nombres std:: (aunque algunos compiladores lo hacen ellos mismos). En el estándar ISO C, las funciones de biblioteca estándar pueden implementarse mediante macros , que no están permitidas en ISO C++.

Véase también

Literatura

Enlaces

Notas

  1. Holzner, Steven. C++: Libro Negro. —Scottsdale, Arizona. : Coriolis Group, 2001. - P. 648. - “La STL está formada por contenedores , iteradores , objetos función y algoritmos ”. — ISBN 1-57610-777-9 .
  2. Cambios en la biblioteca estándar de C++