c++求极值

https://blog.csdn.net/fengbingchun/article/details/77922558

#include "numeric_limits.hpp"
#include 
#include 
 
//////////////////////////////////////////////////////////////////////
/* reference:
    http://www.cplusplus.com/reference/limits/numeric_limits/
    https://msdn.microsoft.com/en-us/library/c707ct0t.aspx
*/
int test_numeric_limits_1()
{
    std::cout << std::boolalpha;
    std::cout << "Minimum value for int: " << std::numeric_limits::min() << std::endl;
    std::cout << "Maximum value for int: " << std::numeric_limits::max() << std::endl;
    std::cout << "int is signed: " << std::numeric_limits::is_signed << std::endl;
    std::cout << "Non-sign bits in int: " << std::numeric_limits::digits << std::endl;
    std::cout << "int has infinity: " << std::numeric_limits::has_infinity << std::endl;
 
    std::cout << "Minimum value for float: " << std::numeric_limits::min() << std::endl; // min returns the smallest positive value the type can encode, not the lowest
    std::cout << "Lowest value for float: " << std::numeric_limits::lowest() << std::endl; // the lowest value
    std::cout << "Maximum value for float: " << std::numeric_limits::max() << std::endl;
    std::cout << "float is signed: " << std::numeric_limits::is_signed << std::endl;
    std::cout << "Non-sign bits in float: " << std::numeric_limits::digits << std::endl;
    std::cout << "float has infinity: " << std::numeric_limits::has_infinity << std::endl;
 
    std::cout << "Minimum value for unsigned short: " << std::numeric_limits::min() << std::endl;
    std::cout << "Maximum value for unsigned short: " << std::numeric_limits::max() << std::endl;
 
    std::cout << "is_specialized(float): " << std::numeric_limits::is_specialized << std::endl;
    std::cout << "is_integer(float): " << std::numeric_limits::is_integer << std::endl;
    std::cout << "is_exact(float): " << std::numeric_limits::is_exact << std::endl;
    std::cout << "is_bounded(float): " << std::numeric_limits::is_bounded << std::endl;
    std::cout << "is_modulo(float): " << std::numeric_limits::is_modulo << std::endl;
    std::cout << "is_iec559(float): " << std::numeric_limits::is_iec559 << std::endl;
    std::cout << "digits10(float): " << std::numeric_limits::digits10 << std::endl;
    std::cout << "radix(float): " << std::numeric_limits::radix << std::endl;
    std::cout << "min_exponent(float): " << std::numeric_limits::min_exponent << std::endl;
    std::cout << "max_exponent(float): " << std::numeric_limits::max_exponent << std::endl;
    std::cout << "min_exponent10(float): " << std::numeric_limits::min_exponent10 << std::endl;
    std::cout << "max_exponent10(float): " << std::numeric_limits::max_exponent10 << std::endl;
    std::cout << "epsilon(float): " << std::numeric_limits::epsilon() << std::endl;
    std::cout << "round_style(float): " << std::numeric_limits::round_style << std::endl;
 
    std::cout << "The smallest nonzero denormalized value for float: "
        << std::numeric_limits::denorm_min()<< std::endl;
    std::cout << "The difference between 1 and the smallest value greater than 1 for float: "
        << std::numeric_limits::epsilon()<< std::endl;
    std::cout << "Whether float objects allow denormalized values: "
        << std::numeric_limits::has_denorm << std::endl;
    std::cout << "Whether float objects can detect denormalized loss: "
        << std::numeric_limits::has_denorm_loss << std::endl;
    std::cout << "Whether float objects have quiet_NaN: "
        << std::numeric_limits::has_quiet_NaN << std::endl;
    std::cout << "Whether float objects have a signaling_NaN: "
        << std::numeric_limits::has_signaling_NaN << std::endl;
    std::cout << "The base for type float is:  "
        << std::numeric_limits::radix << std::endl;
    std::cout << "The maximum rounding error for type float is:  "
        << std::numeric_limits::round_error() << std::endl;
    std::cout << "The rounding style for a double type is: "
        << std::numeric_limits::round_style << std::endl;
    std::cout << "The signaling NaN for type float is:  "
        << std::numeric_limits::signaling_NaN() << std::endl;
    std::cout << "Whether float types can detect tinyness before rounding: "
        << std::numeric_limits::tinyness_before << std::endl;
    std::cout << "Whether float types have implemented trapping: "
        << std::numeric_limits::traps << std::endl;
 
    return 0;
}
图片.png

你可能感兴趣的:(c++求极值)