Librerias C / C++

En lo que respecta al lenguaje C++, existen dos tipos fundamentales de librerías: estáticas y dinámicas.

Las librerías estáticas quedan incluidas en el ejecutable, mientras las dinámicas son ficheros externos, con lo que el tamaño de la aplicación (nuestro ejecutable) es mayor en el primer caso que en el segundo.

Las librerías dinámicas son ficheros independientes que pueden ser invocados desde cualquier ejecutable, de modo que su funcionalidad puede ser compartida por varios ejecutables. Esto significa que solo se necesita una copia de cada fichero de librería (.DLLs) en el Sistema.

Las librerias de C se pueden utilizar en C++, aún así C++ dispone de dichas librerias con el nombre un poco cambiado, un ejemplo sería: <stdio.h> libreria de C compatible con C++ por otra parte encontramos <cstdio>, las librerias de C++ no acaban en .h i empiezan con 'c', el resto es el mismo nombre. Nosotros por el estandar deberiamos utilizar las segundas si programamos en C++.


Algunas librerias de C:
<assert.h> <float.h> <math.h> <stddef.h> <tgmath.h> <complex.h> <inttypes.h> <setjmp.h> <stdio.h> <time.h> <ctype.h> <iso646.h> <signal.h> <stdint.h> <uchar.h> <errno.h> <limits.h> <stdarg.h> <stdlib.h> <wchar.h> <fenv.h> <locale.h> <stdbool.h> <string.h> <wctype.h>
Fijaos que acaban todas en .h

Librerias de C++ extraidas de : http://es.wikipedia.org/wiki/Biblioteca_est%C3%A1ndar_de_C%2B%2B

Cabeceras Estándar

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

Contenedores

<bitset>
Provee la clase contenedora especializada std::bitset, un arreglo de bits.
<deque>
Provee la plantilla clase contenedora std::deque, una cola doblemente enlazada.
<list>
Provee la plantilla clase contenedora std::list, una lista doblemente enlazada.
<map>
Provee las plantillas clases contenedoras std::map y std::multimap, un arreglo asociativo y un arreglo asociativo múltiple respectivamente.
<queue>
Provee la clase adaptadora contenedora std::queue, una cola de datos.
<set>
Provee las plantillas clases contenedoras std::set y std::multiset, contenedores asociativos ordenados.
<stack>
Provee la clase adaptadora contenedora std::stack, una pila de datos.
<vector>
Provee la plantilla clase contenedora std::vector, un arreglo dinámico.

General

<algorithm>
Provee la definición de muchos algoritmos.
<functional>
Provee varios objetos funcionales, diseñados para ser utilizados por los algoritmos estándares.
<iterator>
Provee clases y plantillas para trabajar con iteradores.
<locale>
Provee las clases y plantillas para trabajar con locales.
<memory>
Provee facilidades para el manejo de memoria en C++, incluyendo la clase plantilla std::auto_ptr.
<stdexcept>
Contiene las clases estándares de excepción así como std::logic_error y std::runtime_error, ambas derivadas de std::exception.
<utility>
Provee la clase plantilla std::pair, para trabajar con pares (tuplas de dos miembros) de objetos.

Strings

<string>
Provee las clases y plantillas estándares de C++ para trabajar con cadena de caracteres.

Flujos y Entrada/Salida

<fstream>
Provee facilidades para la entrada y salida basada en archivos.
<ios>
Provee varios tipos y funciones básicas para la operación de flujos de entrada y salida.
<iostream>
Provee los elementos fundamentales para la entrada y salida en C++.
<iosfwd>
Provee las declaraciones hacia adelante de varias clases plantillas de E/S.
<iomanip>
Provee facilidades para manipular el formateo de salida, así como la base utilizada cuando se formatean enteros y los valores precisión o punto flotante.
<istream>
Provee la clase plantilla std::istream y otras clases para la entrada de datos.
<ostream>
Provee la clase plantilla std::ostream y otras clases para la salida de datos.
<sstream>
Provee la clase plantilla std::sstream y otras clases para la manipulación de cadena de caracteres.
<streambuf>

Numéricas

<complex>
Provee la clase plantilla std::complex y funciones asociadas al trabajo con números complejos.
<numeric>
Provee algoritmos para el procesamiento numérico.
<valarray>
Provee la clase plantilla std::valarray, una clase arreglo optimizada para el procesamiento numérico.

Soporte del Lenguaje

<exception>
Provee varios tipos y funciones relacionadas al manejo de excepciones, incluyendo std::exception, la clase base para todas las excepciones arrojadas por la biblioteca estándar.
<limits>
Provee la clase plantilla std::numeric_limits, utilizada para describir las propiedades de los tipos numéricos fundamentales.
<new>
Provee los operadores new y delete y otras funciones y tipos que componen los elementos fundamentales para el manejo de memoria en C++.
<typeinfo>
Provee las facilidades para trabajar con información de tipo en tiempo de ejecución en C++.

Biblioteca estándar de C

Cada cabecera de la biblioteca estándar de C está incluida en la biblioteca estándar de C++ con diferente nombre, generado eliminando la extensión .h y añadiendo una 'c' al inicio, por ejemplo 'time.h' se convierte en 'ctime'. La única diferencia entre estas cabeceras y las cabeceras tradicionales de la biblioteca estándar de C es que es posible que las funciones estén incluidas en el namespace 'std::' (aunque algunos compiladores lo hacen). En el ISO C, las funciones de la biblioteca estándar se pueden implementar por macros, cosa no permitida por el ISO C++.


No hay comentarios :

Publicar un comentario