有人可以解释一下吗?
#include <iostream>
#include <limits.h>
或
#include <iostream>
#include <limits>
答案 0 :(得分:5)
<limits>
是一个C ++标准库头文件,提供了与C头<limits.h>
类似的见解(在C ++中也可以作为<climits>
使用),但它的编写方式更多在C ++程序中有用且安全:
说你有一个template <typename Numeric> ...
,里面的代码想要知道用户实例化你的模板的Numeric
类型参数的最小值和最大值:你可以使用{{ 1}}和std::numeric_limits<Numeric>::min()
;如果您想从...::max()
访问相同的值,则很难知道<climits>
,SCHAR_MIN
,SHRT_MIN
,INT_MIN
等等使用,你必须自己在他们之间切换 - 许多额外的代码,如此微不足道的
LONG_MIN
有很多宏,并且宏不像“普通”C ++标识符那样尊重命名空间或范围 - 它们的替换是相当不明确的 - 因此它们会使您的程序更容易出错< / p>
<climits>
提供了更多关于数字类型的见解,例如它们是否已签名,它们可以处理的基数为10的数字,它们是否代表无穷大或不是数字哨兵值等(有关更完整的列表和信息,请参阅header docs)
答案 1 :(得分:2)
limits.h
是C标准库头。 limits
是C ++标准库头。它们包含different个东西。
C ++中有climits
,它提供more or less what limits.h
did。