0%

Cpp中的极值

最近在写SPFA时候发现这个极值的问题,在C++中其实已经有了解决。

数据类型的极值

在limits.h中,我们可以找到如下定义(已简化):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#define CHAR_BIT	8
#define MB_LEN_MAX 2
#define SCHAR_MIN (-128)
#define SCHAR_MAX 127
#define UCHAR_MAX 255
#define CHAR_MIN SCHAR_MIN
#define CHAR_MAX SCHAR_MAX
#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX-1)
#define UINT_MAX 0xFFFFFFFF
#define SHRT_MAX 32767
#define SHRT_MIN (-SHRT_MAX-1)
#define USHRT_MAX 0xFFFF
#define LONG_MAX 2147483647L
#define LONG_MIN (-LONG_MAX-1)
#define ULONG_MAX 0xFFFFFFFFUL
#define SSIZE_MAX LONG_MAX
#define LONG_LONG_MAX 9223372036854775807LL
#define LONG_LONG_MIN (-LONG_LONG_MAX-1)
#define ULONG_LONG_MAX (2ULL * LONG_LONG_MAX + 1)#define _I64_MIN LONG_LONG_MIN
#define _I64_MAX LONG_LONG_MAX
#define _UI64_MAX ULONG_LONG_MAX

在使用时,只需要包含<limits.h>或者

文件名长度的极值MAX_PATH

在Windows下,文件名的长度是有限制的。
注意,这里的文件名长度是指包含目录到文件名的全路径字符长度
就譬如”C:\Program Files\Microsoft Office”这样的一个完整路径长度不能超过260。
这一点在Microsoft官网可以找到解释
https://docs.microsoft.com/zh-cn/windows/win32/fileio/naming-a-file#maximum-path-length-limitation
a.png