2. ¿Qué son las bibliotecas en c++?
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.
3. Librerías más usadas en C++
Debes tener en cuenta que las librerías no son para todos los lenguajes, las librerías que se
usan en un código fuente de C (es decir, un archivo con extensión .c) no puede compilar
librerías diseñadas para C++ (archivos con extensión .cpp). Aunque las declaraciones de
librerías en ambos lenguajes es igual, éstas cambian. Aquí se hablará de algunas librerías para
C++ y algunas funciones que incluyen. (Por el momento no importa si no sabes para qué son
o cómo se usan).
iostream
Es definitivamente la librería que más estaremos utilizando, pues es una muy completa, tiene
muchas funciones sencillas que son muy utilizadas, al incluirla en la mayoría de los casos
evitamos tener que incluir más librerías. Está especializada en la lectura y escritura de
archivos.
cout cin min() max()
cmath
Declara un conjunto de funciones principalmente para operaciones matemáticas y
transformaciones. Incluye funciones como:
sin() cos() tan() exp() log() pow() sqrt() abs()
4. cstring
Declara un conjunto de funciones principalmente para manipulación de elementos
tipo string
strcat() memcmp() strpbrk() strlen() memset()
cstring
Declara un conjunto de funciones principalmente para manipulación de elementos
tipo string
strcat() memcmp() strpbrk() strlen() memset()
ctime
Declara un conjunto de funciones para obtener y manipular información de tiempo
y fecha.
clock() difftime() mktime() time()
algorithm
Define una colección de funciones especialmente diseñadas para utilizarse en
rangos de elementos. Además incluye la mayoría de los contenedores de la STL.
find() count() swap() reverse() sort() merge()
5. bits/stdc++.h
Esta es algo así como una súper librería. Incluye todas las librerías estándar y de
STL, es decir, podrías sólo incluir esta siempre y no necesitarías incluir otra. Sin
embargo funciona precompilando todas las librerías que incluye, sólo que lo
hace en una sola línea, por lo que incluye librerías que podríamos no usar, esto
hace que el tiempo de compilación sea mayor.
Puedes ver todas las librerías que se integran al agregar bits/stdc++.h viendo su
código fuente acá. Como notarás son demasiadas que muy probablemente no
usaremos.
Debido a esto y aunque su uso es muy práctico, sugiero no utilizarla al hacer
nuestros programas, es preferible que incorpores una a una las librerías que
usaremos. Además no todos los compiladores y evaluadores soportan este
fichero. Sin embargo es algo útil conocer y llegar a utilizar en pruebas, por
ejemplo.
6. 1) Fstream
2) Iosfwb
3) Iostream
4) La biblioteca list
5) Math
6) Memory
7) Biblioteca new
8) Numeric
9) Ostream
10) Queue
11) Librería stdio
12) Librería stdlib
13) String
14) Typeinfo
15) Vector
16) Forward_list
17) List iterator
18) Regex
19) thread
Librerías Estandar de C++
A continuación pondré
algunas de las librerías de
uso más común de c++ y
que forman parte de las
librerías estandar de este
lenguaje
7. Librerías Estandar de C++ (Standar Template Library o STL)
A continuación pondré algunas de las librerías de uso más común de C++ y que forman parte de
las librerías estandar de este lenguaje.
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.
8. 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.
9. 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_list
Esta librería es útil para implementar con gran facilidad listas enlazadas simples.
list
Permite implementar listas doblemente enlzadas (listas enlazadas dobles) facilmente.
10. iterator
Proporciona un conjunto de clases para iterar elementos.
regex
Proporciona 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.