Breves: Inicializar una variable a infinito en C++
En algunas ocasiones, nos encontramos con que necesitamos inicializar una variable al mayor valor posible. Por ejemplo, supongamos un programa que acepta por entrada estándar un número indeterminado de números reales (pudiendo no introducir ninguno) y queremos que se devuelva el menor de todos los números introducidos. En caso de que no se introduzca ninguno, el programa informará de ello.
Como siempre, dentro del mundo de la programación, hay alternativas para aburrir. La alternativa que considero más elegante es inicializar la variable que almacenará el mínimo a infinito. Para ello, se puede hacer lo siguiente:
#include <iostream>
#include <limits>
using namespace std;
int main()
{
double d, min = numeric_limits<double>::infinity();
while(cin >> d)
{
if(d < min)
min = d;
}
if(min == numeric_limits<double>::infinity())
cout << "No se ha introducido ningún número real" << endl;
else
cout << "El menor número real es " << min << endl;
}
Tags
La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.
