关于头文件的一个问题

为什么有的时候不加头文件也可以用别的头文件中的一些函数,比如max,swap,我查了一下只在algorithm里面有这两个函数,而我就是不写这个头文件也能运行成功,还有pair类型也是,不加头文件也行,我查了一下pair是在utility中,这是为什么?

可能你虽然没显式的加A.h,但你现在用的B.h中已经直接或间接的包含了A.h,所以你只用B.h也能用A中的函数。没问题。

有些 C++ 函数是标准函数库的一部分,它们的定义位于头文件中。不过,如果您在源代码中使用了标准函数库中的函数,编译器会自动在编译时包含对应的头文件。因此,有时候不需要显式地包含头文件,编译器会自动把它们加进去。

具体而言,C++ 标准规定了一些必须包含的头文件,其中包括一些标准函数库函数,例如 max、swap 和 pair。因此,如果您使用了这些函数,即使没有显式地包含对应的头文件,编译器仍然会知道它们的存在。