C++ STL : numeric_limits
来源:互联网 发布:linux怎么看cpu占用 编辑:程序博客网 时间:2024/05/21 11:18
动机
我们在平时的程序开发和测试的过程中有时候需要取得特定平台特定算术数据类型的范围,如在32位平台上unsigned int的最大值(65535)和最小值(0),一般来讲,我们很难去刻意去记住这些数值,比如int类型。C++标准模板库给我们提供了一个简单的方法供我们调用,即numeric_limits。
用途
numeric_limits模板类为获取算术类型特性提供了一种标准的方法。如std::numeric_limits<int>::max()
定义
官方关于numeric_limits的文档:numeric_limits reference
template<class T>class numeric_limits;
上述模板是numeric_limits的基础模板,标准库针对每一种特定的算术类型对基础模板做了特化(关于模板的特化概念读者自行搜索),如下所示:
template<> class numeric_limits<bool>;template<> class numeric_limits<char>;template<> class numeric_limits<signed char>;template<> class numeric_limits<unsigned char>;template<> class numeric_limits<wchar_t>;template<> class numeric_limits<char16_t>; // C++11 featuretemplate<> class numeric_limits<char32_t>; // C++11 featuretemplate<> class numeric_limits<short>;template<> class numeric_limits<unsigned short>;template<> class numeric_limits<int>;template<> class numeric_limits<unsigned int>;template<> class numeric_limits<long>;template<> class numeric_limits<unsigned long>;template<> class numeric_limits<long long>;template<> class numeric_limits<unsigned long long>;template<> class numeric_limits<float>;template<> class numeric_limits<double>;template<> class numeric_limits<long double>;
使用
使用前需要包含头文件<limits>
,以下是使用的例子:
#include <iostream>#include <limits>int main(int argc, char argv[]){ std::cout << "int min : " << std::numeric_limits<int>::min() << std::endl; std::cout << "int max : " << std::numeric_limits<int>::max() << std::endl; std::cout << "float min : " << std::numeric_limits<float>::min() << std::endl; std::cout << "float max : " << std::numeric_limits<float>::max() << std::endl; return 0;}
程序输出如下:
int min : -2147483648int max : 2147483647float min : 1.17549e-38float max : 3.40282e+38
总结
- numeric_limits为我们提供了一种去获取算术类型信息的标准方法
- 在使用时要包含
<limits>头文件
0 0
- C++ STL : numeric_limits
- numeric_limits
- numeric_limits
- numeric_limits
- numeric_limits
- numeric_limits
- numeric_limits
- 【C++】limits头文件 numeric_limits
- resolve stl numeric_limits::min and VC min marco
- C++/C++11中std::numeric_limits的使用
- STL标准程序库第一部分总结(Auto_ptr&&numeric_limits,标准模板库,迭代器的配接器)
- 关于numeric_limits
- 关于numeric_limits
- 关于numeric_limits
- numeric_limits用法
- numeric_limits 解析
- C++STL
- C++STL
- 【剑指offer】面试题38-数字在排序数组中出现的次数
- MySQL绿色版的安装(mysql-5.6.22-win32.zip)
- js实现图片预加载
- Spark读码笔记之核心源码编译
- jquery之封装插件
- C++ STL : numeric_limits
- javase activemq发送消息
- iOS 保持界面流畅的技巧
- 小白课程播放地址
- 我的2016,喜忧参半!
- 常用的外部排序方法
- 小程序-简易搭建步骤
- spring的启动过程04.2-AnnotationAwareAspectJAutoProxyCreator处理器
- 括号配对问题