作为 C 的超集,C++ 提供了广泛有益的数学函数。标准 C++ 和 C 提供这些函数以支持各种数学运算。这些函数可以直接使用,以简化代码和程序,而不是专注于实现。C++ 提供的数学函数列表如下:
您必须包含 <math.h> 或 <cmath> 头文件才能使用这些函数。您可以使用 C++ 中的各种函数对数字执行数学运算。
在本教程中,我们将学习什么是数学函数,并将通过示例演示如何在 C++ 程序中应用它们。
数学函数定义为将一个集合 (A) 中的元素映射到另一个集合 (B) 的关系,其中第一个集合的每个元素只映射到第二个集合的一个元素。这对于 C/C++(以及其他编程语言)也适用,其中您有一个输入集和一个输出集。
作为 math 或 cmath 包一部分的数学函数可用于在 C++ 编程语言中执行计算。这些数学函数主要设计用于进行复杂的数学计算。
C++ 中的

C++ 支持广泛的算术函数,下面列出并提供了示例:
| 函数 | 描述 |
|---|---|
| max (p,q) | max (p,q) 返回 p 和 q 之间能找到的最高/最大数字。 |
| min (p,q) | 如果您输入 min (p,q),它将提供 p 和 q 之间的最低/最小数字。 |
#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout << max(19,22) << "\n";
cout << min(19,22) << "\n";
return 0;
}
输出
22 19
| 函数 | 描述 |
|---|---|
| pow (m,n) | 此函数将计算 m 的 n 次幂。 |
| sqrt(m) | 此函数将计算 m 的平方根。 |
| cbrt(n) | 此函数将计算 n 的立方根。 |
| hypot(m,n) | 此函数将计算直角三角形的斜边。 |
#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout << pow(2,9) << "\n";
cout << sqrt(20) << "\n";
cout << cbrt(3) << "\n";
cout << hypot(8,10) << "\n";
return 0;
}
输出
512 4.47214 1.44225 12.8062
| 函数 | 描述 |
|---|---|
| log(p) | 此函数用于计算 p 的对数。 |
| log10(p) | 此函数用于计算 p 的常用对数。 |
| log10(p) | 此函数用于计算 p 的常用对数。 |
| exp2(p) | 此函数用于计算 p 的以 2 为底的指数。 |
| log2(p) | 此函数用于计算 p 的以 2 为底的对数。 |
| logb(p) | 此函数用于计算 p 的对数。 |
#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout << exp(10) << "\n";
cout << log(6) << "\n";
cout << log10(6) << "\n";
cout << exp2(50) << "\n";
cout << log2(4) << "\n";
cout << logb(4) << "\n";
return 0;
}
输出
22026.5 1.79176 0.778151 1.1259e+15 2 2
在它的帮助下可以找到最接近的整数值。
| 函数 | 描述 |
|---|---|
| ceil(z) | 此函数主要向上舍入 z 的值。 |
| floor(z) | 此函数将向下舍入 z 的值。 |
| round(z) | 此函数主要四舍五入 z 的值。 |
| fmod(z,y) | 通过将 z 除以 y,此函数确定余数。 |
| trunc(z) | 此函数会将 z 值截断为零。 |
| rint(z) | 将使用舍入模式对 z 值进行四舍五入。 |
| remainder(z,y) | 此函数将主要计算 z/y 的余数。 |
| nearbyint(z) | z 值将被四舍五入到最接近的整数值。 |
#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout << ceil(8450.01) << "\n";
cout << floor(952.777) <<< "\n";
cout << round(918.5) << "\n";
cout << fmod(9,71) << "\n";
cout << trunc(70.95) << "\n";
cout << rint(21.25) << "\n";
cout << nearbyint(189.22) << "\n";
cout << remainder(18,56) << "\n";
return 0;
}
输出
8451 952 919 9 70 21 189 18
如果它能帮助您在短时间内比较数字,那么数字的长度就没有关系。下面提供了几个比较函数示例:
| 函数 | 描述 |
|---|---|
| isgreater(p,q) | 它确定 p 是否大于 q。 |
| islessequal(p,q) | 它确定 p 是否小于或等于 q。 |
| isgreaterequal(p,q ) | 它确定 p 是否大于或等于 q。 |
| islessgreater(p,q) | 它确定 p 是否等于或大于 y。 |
| isunordered(p,q) | 它确定 p 是否已进行比较。 |
#include <iostream>
#include <math.h>
using namespace std;
int main() {
// cout << less(22,29) << "\n";
cout << isgreater(48,47)<<"\n";
cout << islessequal(11,5)<< "\n";
cout << isgreaterequal(19,72)<< "\n";
cout << islessgreater(59,84)<<"\n";
cout << isunordered(62,84)<< "\n";
return 0;
}
输出
1 0 0 1 0
专门用于几何计算的函数。直角三角形提供了角度与两条边长之比之间的关系。
| 函数 | 描述 |
|---|---|
| sin(y) | 此函数计算正弦 y 的值。 |
| cos(y) | 此函数计算余弦 y 的值。 |
| tan(y) | 此函数计算正切 y 的值。 |
| asin(y) | 此函数计算反正弦 y 的值。 |
| acos(y) | 此函数计算反余弦 y 的值。 |
| atan(y) | 此函数计算反正切 y 的值。 |
| atan2(y,x) | 此函数计算 y 和 x 坐标的反正切值。 |
#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout << sin(0)<< "\n";
cout << cos(0)<< "\n";
cout << tan(1)<< "\n";
cout << asin(1)<< "\n";
cout << acos(0)<< "\n";
cout << atan(1)<< "\n";
cout << atan2(0,1)<< "\n";
return 0;
}
输出
0 1 1.55741 1.5708 1.5708 0.785398 0
这里还有一些更有趣的函数,称为“双曲函数”,可用于计算双曲三角函数的值。
| 函数 | 描述 |
|---|---|
| sinh(x) | 此函数计算 x 的双曲正弦值。 |
| cosh(x) | 此函数计算 x 的双曲余弦值。 |
| tanh(x) | 此函数计算 x 的双曲正切值。 |
| asinh(x) | 此函数计算 x 的双曲反正弦值。 |
| acosh(x) | 此函数计算 x 的双曲反余弦值。 |
| atanh(x) | 此函数将计算 x 的双曲反正弦值。 |
#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout << sinh(0)<< "\n";
cout << cosh(0)<< "\n";
cout << tanh(1)<< "\n";
cout << asinh(1)<< "\n";
cout << acosh(1)<< "\n";
cout << atanh(0)<< "\n";
return 0;
}
输出
0 1 0.761594 0.881374 0 0
结论
数学函数对于节省大量时间和内存至关重要。所有数学函数都是内置的,因此无需直接创建任何数学函数。相反,只需添加一个头文件即可访问整个数学类库。