Search code examples
c++infinity

Setting an int to Infinity in C++


I have an int a that needs to be equal to "infinity". This means that if

int b = anyValue;

a>b is always true.

Is there any feature of C++ that could make this possible?


Solution

  • Integers are finite, so sadly you can't have set it to a true infinity. However you can set it to the max value of an int, this would mean that it would be greater or equal to any other int, ie:

    a>=b
    

    is always true.

    You would do this by

    #include <limits>
    
    //your code here
    
    int a = std::numeric_limits<int>::max();
    
    //go off and lead a happy and productive life
    

    This will normally be equal to 2,147,483,647

    If you really need a true "infinite" value, you would have to use a double or a float. Then you can simply do this

    float a = std::numeric_limits<float>::infinity();
    

    Additional explanations of numeric limits can be found here

    Happy Coding!

    Note: As WTP mentioned, if it is absolutely necessary to have an int that is "infinite" you would have to write a wrapper class for an int and overload the comparison operators, though this is probably not necessary for most projects.