在C++中,limits
是一個模板類,它定義在<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<iostream>
#include<limits>
int main() {
std::cout << "Type of int: "<< typeid(int).name() << '\n';
std::cout << "Minimum value of int: "<< std::numeric_limits<int>::min() << '\n';
std::cout << "Maximum value of int: "<< std::numeric_limits<int>::max() << '\n';
std::cout << "Is int signed: "<< std::boolalpha<< std::numeric_limits<int>::is_signed << '\n';
std::cout << "Is int exact: "<< std::boolalpha<< std::numeric_limits<int>::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