为什么我们应该在 <algorithm> header 的函数之前使用 std name space 而不应在 <cmath> header 的函数之前使用它?

Why should we use std name space before functions of <algorithm> header and should not use it before functions of <cmath> header?

我想知道为什么我们应该在 <algorithm> header 函数之前使用 std 命名空间,例如 max() and we are not obliged to use it before functions of <cmath> header like round()?

例子: max() round()

谢谢

<cmath> 本质上是 C 标准库中 math.c 的包装器。

This header was originally in the C standard library as <math.h>. (source: https://en.cppreference.com/w/cpp/header/cmath)

C++ 是(几乎)C 的超集,这意味着 C++ 编译器应该编译几乎所有用 C 编写的程序。因此,C 标准库中的函数不属于 std 命名空间,这是C++的概念。其他示例:printffopen。当然你可以自由地将C++标准库与C标准库函数、常量、宏等混合使用

对于 C 和 C++ 之间的不兼容性,请参见示例 Where is C not a subset of C++?