Cuando se desarrolló C, la funciones de entrada y salida, entre otras muchas interacciones que hoy consideramos normales, no existían.
De hecho en la etapa inicial de C, la mayor parte de los programas realizaban procesos que no interactuaban directamente (o de forma muy limitada) entre el usuario y el programa, simplemente realizaban tareas específicas y terminaban su ejecución.
Las características propias del lenguaje lo dotaron de la capacidad de auto extenderse, conforme se fue popularizando y conforme se desarrolló la necesidad de aplicaciones más grandes y complejas, fueron desarrollándose módulos de uso frecuente que se volvieron casi sinónimo del lenguaje, sin embargo no formaron parte de la definición del mismo. Estas características se reunieron en bibliotecas que podían utilizar los programadores.
De esta forma llegamos a las librerías, estas librerías son archivos externos a nuestro programa que contienen definidas funciones, constantes, identificadores, etc. La principal característica de las librerías es que podemos incluirlas en nuestros programas y utilizar todo su contenido en nuestro código, únicamente debemos conocer qué valores requiere, cuáles entregan y por su puesto, su forma de invocarla (llamarla)
De los programas que hemos trabajado, podrás intuir que muchas veces nos veremos reutilizando código tanto en el mismo programa, como en otros, incluir librerías extiende este concepto, podemos reutilizar código que otros han desarrollado, o el que nosotros hayamos integrado en nuestras propias librerías.
Aunque te pueda parecer increíble, C no implementa ninguna de las características de entrada/salida como parte del lenguaje que hemos utilizado hasta el momento, por lo que esta funcionalidad se adquiere a través de librerías externas. C++ hereda la librería de C estándar y añade su propia funcionalidad.
Se puede suponer que siempre habrá un conjunto común de funciones que usaremos (tú y cualquier programador sin importar el nivel) prácticamente siempre, por ejemplo, siempre será necesario mostrar algo en la pantalla, recibir una entrada por parte del usuario, manipular cadenas de texto, manejar archivos, etc.Nota: recuerda, es un curso para no programadores y recién llegados al lenguaje, si requieres un enfoque eminentemente informático, te sugiero revises las referencias al final del documento.
La biblioteca estándar de C++ (STL); es un gran conjunto de clases y funciones que de acuerdo al estándar se debe incluir en toda implementación del compilador. Y conviene tenerla siempre presente, pues incluye prácticamente todo lo que necesitarás en todos tus programas (y lo que no exista o no funcione como necesitas, tú lo puedes modificar, recuerda eres programador 😉 ) así que revisar dicha librería te puede ahorrar horas de programación y sobre todo, te evitará reinventar la rueda.
La El estándar de C++ correspondiente a 1998 establece que la librería estándar se compone de 32 archivos de cabecera de nombres fijos y conocidos agrupados según la funcionalidad de los algoritmos(2). Por el perfil de este curso, tiene más sentido conocer las funciones agrupadas por funcionalidad, a continuación te presento la clasificación que adopta organiZATOR(2).
También es necesario saber que toda la biblioteca de estándar del lenguaje C está contenida o incluida en la biblioteca estándar de plantillas de C++, pues C++ es la evolución de C
El término Bilblioteca tiene su origen en la traducción del inglés del término library que es el término utilizado en la documentación. Sin embargo está muy difundido en el ámbito de la programación el término librería. Los dos conceptos se utilizan indistintamente, por lo que también aquí los usaremos de forma indistinta.
Para declarar el uso de una librería utilizamos la siguiente sintaxis.
#include <nombre_de_libreria>
o podemos usar la forma alterna
#include "nombre_de_libreria"
Por ejemplo si queremos utilizar la biblioteca string para poder manipular cadenas de texto, debemos declarar la siguiente cabecera.
#include string
Al hacer esta declaración, estamos dando acceso a nuestro programa a todo el contenido de la biblioteca string a nuestro programa, de este modo podemos realizar el siguiente programa:
// cpp_60_funciones_include1.cpp // Este programa forma parte del tutorial de introducción al lenguaje C++ // http://a.ehack.info/leguaje-c-introduccion/ // Se ilustra la inclusión de librerías estándar, utilizamos string como ejemplo // 2018, Por http://about.me/carlosgbr // Versión 1 // Compilado en https://www.onlinegdb.com/online_c++_compiler #include <iostream> #include <string> using namespace std; int main() { string entrada; cout<<"Escribe una palabra: "; cin >> entrada; cout << "Palabra actual: " << entrada << "\n"; cout << "Tamaño: " << entrada.size() << "\n"; cout << "Longitud: " << entrada.length() << "\n"; cout << "Capacidad: " << entrada.capacity() << "\n"; cout << "Tamaño Máximo: " << entrada.max_size() << "\n"; entrada.clear(); //Limpiamos el contenido de la variable cout << "Palabra actual: " << entrada << "\n"; cout << "Tamaño: " << entrada.size() << "\n"; cout << "Longitud: " << entrada.length() << "\n"; cout << "Capacidad: " << entrada.capacity() << "\n"; cout << "Tamaño Máximo: " << entrada.max_size() << "\n"; return 0; }
A continuación puedes ver una posible salida del programa, observa que podemos manipular y obtener algunos datos del texto que introducimos. Por su puesto, podemos programar nuestras propias funciones que hagan lo mismo, sin embargo ¿para que perder el tiempo haciendo lo que ya existe?, mejor desarrollamos lo que queremos programar. Ésa es la filosofía de las librerías.
El ejemplo anterior es solo una muestra mínima de lo que podemos hacer, hay librerías para cientos de actividades, solo es cuestión de tener la documentación para poder utilizarlas.
Está especializada en funciones de entrada y salida de datos, y como puedes ver, es la que hemos utilizado hasta el momento de forma continua. cout cin min() max()
Funciones para operaciones matemáticas y transformaciones. Algunas funciones son: sin() cos() tan() exp() log() pow() sqrt() abs()
Declara un conjunto de funciones principalmente para manipulación de elementos tipo string strcat() memcmp() strpbrk() strlen() memset()
Declara un conjunto de funciones para obtener y manipular información de tiempo y fecha. asctime() ctime() gmtime() mktime() time()
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()
A continuación puedes ver un programa que utiliza funciones de varias librerías,
// cpp_61_funciones_include2.cpp // Este programa forma parte del tutorial de introducción al lenguaje C++ // http://a.ehack.info/leguaje-c-introduccion/ // Se ilustra la inclusión de librerías de mayo uso y el uso de algunas // de las funciones más representativas // 2018, Por http://about.me/carlosgbr // Versión 1 // Compilado en https://www.onlinegdb.com/online_c++_compiler #include <iostream> // Permite usar cin, cout, min(), max() #include <cmath> // Permite usar sqrt(), pow() #include <time.h> // Permite usar time_t, tm, time, asctime #include <algorithm>// Permite usar max, min #include <random> // Permite usar srand, rand using namespace std; int main() { string entrada; int edad = 0; float calculo = 0; // Requiere de iostream cout<<"Escribe tu nombre: "; cin >> entrada; cout<<"Escribe tu edad: "; cin >> edad; cout << "Bienvenid@" << entrada << "\n"; // Requiere cmath calculo = sqrt(edad); cout<<"La raíz de tu edad es: " << calculo << "\n"; calculo = pow(edad,3); cout<<"Tu edad elevada al cubo es: " << calculo << "\n"; // Requiere time.h time_t horaSistema; struct tm * timeinfo; time (&horaSistema); timeinfo = localtime (&horaSistema); cout << "Hora y fecha local: " << asctime(timeinfo); // Requiere algorithm cout << "max(1,2)==" << max(1,2) << '\n'; cout << "min(2,1)==" << max(2,1) << '\n'; cout << "max('a','z')==" << max('a','z') << '\n'; cout << "max(3.14,2.73)==" << min(3.14,2.73) << '\n'; // Requiere random srand((unsigned)time(0)); int semilla; semilla = rand(); cout << "La semilla vale =" << semilla << '\n'; cin.get(); // Requiere string return 0; }
<bits/stdc++.h> básicamente es un archivo de encabezado que incluye todas las bibliotecas estándar. En los concursos de programación, usar este archivo es una buena idea cuando se quiere reducir el tiempo utilizado al realizar las tareas encomendadas; especialmente cuando el tiempo es bastante reducido. (5)
En los concursos de programación, las personas se centran más en encontrar algoritmos para resolver un problema que en la ingeniería de software. Al utilizar esta librería en realidad incluyes una gran cantidad de archivos, que tu programa puede no necesitar, por lo tanto, aumenta el tiempo de compilación y el tamaño del programa innecesariamente. Es preferible no utilizarlo en programas de producción, pero es importante que conozcas su existencia.
Así que ya lo sabes, tienes al alcance virtualmente miles de funciones listas para utilizar en tu programa, solo es cuestión de incluir la biblioteca que las contiene, y saber utilizar dicha función. Así que ahora es cuestión que consultes ya sea la documentación oficial o realizar una búsqueda en Internet y practicar. Un buen punto de partida para que explores la biblioteca de librerías y sus funciones es la recopilación que tiene cppreference.com(4)
Funciones III en C++ by Roberto C. González is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.
El comando dnsenum es una herramienta de línea de comandos para realizar enumeración de DNS…
En esta entrada te presento 24 de las listas negras más comunes que los servidores…
ZoomIt es una herramienta de anotación y zoom de pantalla para presentaciones técnicas que incluyen…
WinObj es el visor de espacios de nombres de Object Manager definitivo. Es la primera…
Whois realiza el registro de registro para el nombre de dominio o la dirección IP…
VolumeID – Esta utilidad, le permite cambiar los identificadores de los discos FAT y NTFS…