3. ¿Qué son exactamente las librerías?
En C++, se conoce como librerías (o bibliotecas) a cierto tipo de archivos que
podemos importar o incluir en nuestro programa. Estos archivos contienen las
especificaciones de diferentes funcionalidades ya construidas y utilizables que
podremos agregar a nuestro programa, como por ejemplo leer del teclado o mostrar
algo por pantalla entre muchas otras más.
Al poder incluir estas librerías con definiciones de diferentes funcionalidades
podremos ahorrarnos gran cantidad de cosas, imaginemos por ejemplo que cada vez
que necesitemos leer por teclado, debamos entonces crear una función que lo haga
(algo realmente complejo), al poder contar con las librerías en C++, podremos hacer
uso de una gran variedad de funciones que nos facilitaran la vida y aumentarán la
modularidad de nuestros códigos.
Las librerías no son únicamente archivos externos creados por otros, también es
posible crear nuestras propias librerías y utilizarlas en nuestros programas. Las
librerías pueden tener varias extensiones diferentes, las más comunes son: .lib, .bpl,
.a, .dll, .h y algunas más ya no tan comunes.
4. Librerías Estandar de C++
fstream:Flujos hacia/desde ficheros. Permite la manipulación de archivos desde el programar, tanto leer como escribir en
ellos.
iosfwd:Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estándar. Por ejemplo ostream.
iostream:Parte del a STL que contiene los algoritmos estándar, es quizá la más usada e importante (aunque no indispensable).
La biblioteca list:Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas
math:Contiene los prototipos de las funciones y otras definiciones para el uso y manipulación de funciones matemáticas.
memory:Utilidades relativas a la gestión de memoria, incluyendo asignadores y punteros inteligentes (auto_ptr).
"auto_ptr" es una clase que conforma la librería memory y permite un fácil manejo de punteros y su destrucción
automaticamente.
Biblioteca new:Manejo de memoria dinámica
numeric:Parte de la librería numérica de la STL relativa a operaciones numéricas.
ostream:Algoritmos estándar para los flujos de salida.
queue:Parte de la STL relativa a contenedores tipo queue (colas de objetos).
Librería stdio:Contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida.
Librería stdlib:Contiene los prototipos de las funciones, macros, y tipos para utilidades de uso general.
string:Parte de la STL relativa a contenedores tipo string; una generalización de las cadenas alfanuméricas para albergar
cadenas de objetos. Muy útil para el fácil uso de las cadenas de caracteres, pues elimina muchas d elas dificultades que
generan los char
typeinfo:Mecanismo de identificación de tipos en tiempo de ejecución
5. numeric:Parte de la librería numérica de la STL relativa a operaciones numéricas.
ostream:Algoritmos estándar para los flujos de salida.
queue:Parte de la STL relativa a contenedores tipo queue (colas de objetos).
Librería stdio:Contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida.
Librería stdlib:Contiene los prototipos de las funciones, macros, y tipos para utilidades de uso general.
string:Parte de la STL relativa a contenedores tipo string; una generalización de las cadenas alfanuméricas para albergar
cadenas de objetos. Muy útil para el fácil uso de las cadenas de caracteres, pues elimina muchas d elas dificultades que
generan los char
typeinfo:Mecanismo de identificación de tipos en tiempo de ejecución
vector:Parte de la STL relativa a los contenedores tipo vector; una generalización de las matrices unidimensionales
C/C++
forward_listEsta librería es útil para implementar con gran facilidad listas enlazadas simples.
listPermite implementar listas doblemente enlzadas (listas enlazadas dobles) facilmente.
iteratorProporciona un conjunto de clases para iterar elementos.
regexProporciona fácil acceso al uso de expresiones regulares para la comparación de patrones.
threadÚtil para trabajar programación multihilos y crear múltiples hilos en nuestra aplicación.
6. <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.
7. <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.
Cadenas de caracteres
<string>
provee las clases y plantillas estándares de C++ para trabajar con cadena de caracteres.
Flujos y entrada y 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.
8. <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.
9. 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++.
10. ¿Cómo declarar
una librería en
C++?
Con esto debió quedar claro, como
declarar librerías C++ al interior de un
código fuente. Lo único adicional, es la
línea que dice using namespace
std; esta línea nos ayuda a declarar un
espacio de nombre que evita tener
que usarlo cada que accedemos a
alguna función especifica de una
librería.
11. Ejemplo 1 de
librerías en C++
En el siguiente ejemplo veremos el uso
de la librería stdlib.h que posee una
gran variedad de funcionalidades, para
este ejemplo usaremos la función rand
que nos permite generar un número
aleatorio.
12. Ejemplo 2 de
librerías en C++
En el siguiente ejemplo veremos el uso
de la librería string.h que nos permite
básicamente crear y manipular muy
fácilmente cadenas de caracteres
Aquí hemos mostrado un mensaje
solicitando el nombre al usuario y
luego usando string, hemos creado un
saludo que incluya el nombre del
usuario. "Hola Juan".
13. Ejemplo 3 para
bibliotecas en
C++
En este ejemplo usaremos la biblioteca
vector, iterator y list, para crear un lista
doblemente enlazada, agregar algunos
elementos en ella (incluido un vector)
y recorrerla.
El resultado final de la ejecución de
este código debería mostrar por
pantalla "Mi lista contiene lo siguiente:
10 11 18 18 18 19 19 20 30 40 50" que
es el resultado final de la inserción.
14. ES NECESARIO SABER DE ESTE TEMA DE LIBRERIAS POR QUE LO
PODEMOS UTILIZAR PARA NUESTRA VIDA DIARIA O PREBLEMAS
TECNICOS QUE TENGAMOS , FAVORECE A TENER MAS CONOCIMIENTO
Y SABER EL ERROR QUE SE COMETE A LA HORA SE HACER LA EJECUCION
DEL CODIGO DE TRABAJO.
CONCLUSION