在C++中,limits
是一个模板类,它定义在
头文件中。这个模板类用于获取数据类型的属性,例如最小值、最大值、精度等。
std::numeric_limits
是一个模板类,可以为内置数据类型(如int、float、double等)提供有关其属性的信息。这些属性包括:
min()
: 返回该类型能表示的最小值。max()
: 返回该类型能表示的最大值。epsilon()
: 返回该类型的最小精度,即1.0加上此值后得到的下一个可表示的值与1.0之间的差。digits
: 该类型的基数为底的位数。is_signed
: 如果该类型是有符号的,则为true。is_integer
: 如果该类型是整数类型,则为true。is_exact
: 如果该类型的运算结果总是精确的,则为true。radix
: 该类型的基数(通常为2)。
以下是一个使用std::numeric_limits
的示例:
#include#include int main() { std::cout << "Type of int: "<< typeid(int).name() << '\n'; std::cout << "Minimum value of int: "<< std::numeric_limits ::min() << '\n'; std::cout << "Maximum value of int: "<< std::numeric_limits ::max() << '\n'; std::cout << "Is int signed: "<< std::boolalpha<< std::numeric_limits ::is_signed << '\n'; std::cout << "Is int exact: "<< std::boolalpha<< std::numeric_limits ::is_exact << '\n'; return 0; }
输出:
Type of int: i Minimum value of int: -2147483648 Maximum value of int: 2147483647 Is int signed: true Is int exact: true