数值的极值

120 阅读1分钟

数值的极值

一般来说,数值的极值与平台相关。C++标准库用template_numeric_limits提供了数值的极值,取代了传统C语言所采用的预处理器常量。预处理器常量定义的整数极值在和<limits.h>,浮点数极值在和<float.h>文件中。而标准库提供的新的极值概念有以下两个优点:

  1. 提供了更好的类型安全性
  2. 可借此写出一些template以核定这些极值

极值的使用:

#include <iostream>
#include <limits>
#include <string>

using namespace std;

int main()
{
    cout << boolalpha;

    cout << "max(short): " << numeric_limits<short>::max() << endl;
    cout << "max(int): " << numeric_limits<int>::max() << endl;
    cout << "max(long): " << numeric_limits<long>::max() << endl;
    cout << endl;
    cout << "max(flat): " << numeric_limits<float>::max() << endl;
    cout << "max(double): " << numeric_limits<double>::max() << endl;
    cout << "max(long double): " << numeric_limits<long double>::max() << endl;
    cout << endl;

    cout << "is_singed(char): " << numeric_limits<char>::is_signed << endl;
    cout << endl;

    cout << "is_specialized(string)" << numeric_limits<string>::is_specialized << endl;
    system("pause");
    return 0;
}