C++ 标准在保持与 C API 兼容的同时引入了新的 API。C 包装器的标头以“c”开头,例如 <ctime>、<cstring> 和 <climits>。它们对应的 C++ 头文件是 <chrono>、<string> 和 <limits>。
我的问题是为什么 STL 不提供新的数学库,即使旧的 C API 存在许多缺陷。缺陷包括但不限于:C API 使用“f”、“l”和“ll”前缀来声明不同类型的函数,而 C++ 可以重载,缺少 pi 和 e 等常量等。
有一个 C 的 C++ 标准库版本<math.h>:它是<cmath>. 该<cfoo>标头是不是仅仅是包装<foo.h>用的名字std命名。它们使用一些 C++ 特性,例如函数重载,并且可以具有更多特性。例如,<cmath>有一堆特殊的数学函数
考虑std::abs。在<cmath>,也有过载int,long和long long,以及float,double和long double。
| 归档时间: |
|
| 查看次数: |
817 次 |
| 最近记录: |