domingo, 20 de mayo de 2018

Apéndice: Librerías


Cuando programamos en cualquier lenguaje de programación a veces nos preguntamos cómo es que el compilador entiende o interpreta lo que esta escrito. Pues existen funciones cuya tarea es convertir lo  escrito en lenguaje máquina para que el procesador se encargue de ejecutarlo. También  hay funciones que utilizamos como el cin y cout que no hemos definido y aun así todo funciona. Entonces ¿Cómo es que podemos utilizarlos?

Al inicio de cada programa se escriben unas líneas de instrucciones que corresponden a una biblioteca de funciones condensadas en un archivo, comúnmente llamadas librerías. Es así como es posible utilizar funciones básicas para hacer nuestros programas. Dependiendo de la complejidad y particularidad de nuestros proyectos se podrán agregar más librerías para tener acceso a funciones más específicas.

Ejemplo de la declaración de la librerías:

#include <stdlib.h>
#include <iostream>
using namespace std;

La instrucción using namespace std 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. Teniendo este namespace declarado podemos llamar por ejemplo el comando cout >>, que pertenece a la librería iostream, sin embargo sin este namespace sería std::cout >>, imagina tener que hacer esto cada vez que uses algún comando o función de las librerías, sería bastante tedioso.

Hay que acotar que las funciones definidas en las librerías nos facilitan a realizar ciertas tareas en nuestros programas; sin embargo habrá momentos en la que dentro de las mismas no haya una función que haga lo que necesitamos, en este caso nos tocará crearla nosotros.

Algunas de las librerías más comunes en C++ son:
  • 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
  • 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.
  • 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.

Las librerías presentadas anteriormente son estándar para C++; pero posiblemente podrás ubicar por la red alguna otras creadas por desarrolladores que se adapten a tus requerimientos.

Para concluir. Es muy difícil crear un programa sin usar librerías. En ellas podremos encontrar funciones que nos facilitan mucho algunas tareas. Un ejemplo de ellos lo podemos notar en uno de los ejercicios presentados en el Apéndice: Cadena de Caracteres. Las librerías las utilizaremos según nuestra conveniencia. Recomiendo no agregar librerías por hacerlo, sino porque realmente se necesite, ya que cada biblioteca que se añada carga de información a nuestro programa haciéndolo más grande y pesado.

 

0 comentarios:

Publicar un comentario