- C 标准库
- C 标准库
- C++ 标准库
- C++ 库 - 首页
- C++ 库 - <fstream>
- C++ 库 - <iomanip>
- C++ 库 - <ios>
- C++ 库 - <iosfwd>
- C++ 库 - <iostream>
- C++ 库 - <istream>
- C++ 库 - <ostream>
- C++ 库 - <sstream>
- C++ 库 - <streambuf>
- C++ 库 - <atomic>
- C++ 库 - <complex>
- C++ 库 - <exception>
- C++ 库 - <functional>
- C++ 库 - <limits>
- C++ 库 - <locale>
- C++ 库 - <memory>
- C++ 库 - <new>
- C++ 库 - <numeric>
- C++ 库 - <regex>
- C++ 库 - <stdexcept>
- C++ 库 - <string>
- C++ 库 - <thread>
- C++ 库 - <tuple>
- C++ 库 - <typeinfo>
- C++ 库 - <utility>
- C++ 库 - <valarray>
- C++ STL 库
- C++ 库 - <array>
- C++ 库 - <bitset>
- C++ 库 - <deque>
- C++ 库 - <forward_list>
- C++ 库 - <list>
- C++ 库 - <map>
- C++ 库 - <multimap>
- C++ 库 - <queue>
- C++ 库 - <priority_queue>
- C++ 库 - <set>
- C++ 库 - <stack>
- C++ 库 - <unordered_map>
- C++ 库 - <unordered_set>
- C++ 库 - <vector>
- C++ 库 - <algorithm>
- C++ 库 - <iterator>
- C++ 高级库
- C++ 库 - <any>
- C++ 库 - <barrier>
- C++ 库 - <bit>
- C++ 库 - <chrono>
- C++ 库 - <cinttypes>
- C++ 库 - <clocale>
- C++ 库 - <condition_variable>
- C++ 库 - <coroutine>
- C++ 库 - <cstdlib>
- C++ 库 - <cstring>
- C++ 库 - <cuchar>
- C++ 库 - <charconv>
- C++ 库 - <cfenv>
- C++ 库 - <cmath>
- C++ 库 - <ccomplex>
- C++ 库 - <expected>
- C++ 库 - <format>
- C++ 库 - <future>
- C++ 库 - <flat_set>
- C++ 库 - <flat_map>
- C++ 库 - <filesystem>
- C++ 库 - <generator>
- C++ 库 - <initializer_list>
- C++ 库 - <latch>
- C++ 库 - <memory_resource>
- C++ 库 - <mutex>
- C++ 库 - <mdspan>
- C++ 库 - <optional>
- C++ 库 - <print>
- C++ 库 - <ratio>
- C++ 库 - <scoped_allocator>
- C++ 库 - <semaphore>
- C++ 库 - <source_location>
- C++ 库 - <span>
- C++ 库 - <spanstream>
- C++ 库 - <stacktrace>
- C++ 库 - <stop_token>
- C++ 库 - <syncstream>
- C++ 库 - <system_error>
- C++ 库 - <string_view>
- C++ 库 - <stdatomic>
- C++ 库 - <variant>
- C++ STL 库速查表
- C++ STL - 速查表
C++ 库 - <cmath>
C++ 中的<cmath> 头文件提供了一组预定义函数,用于计算常见的数学运算和转换。
它提供标准数学函数,例如三角函数、指数函数、对数函数和幂函数,以及可应用于标量和向量量的其他有用函数。
包含 <cmath> 头文件
要在 C++ 程序中包含 <cmath> 头文件,可以使用以下语法。
#include <cmath>
<cmath> 头文件的函数
以下是 <cmath> 头文件中所有函数的列表。
三角函数
这些函数处理标准三角计算,如正弦、余弦和正切。
序号 | 函数及说明 |
---|---|
1 | sin(x)
此函数返回角度为 x 弧度的余弦。 |
2 | cos(x)
此函数返回角度为 x 弧度的正弦。 |
3 | tan(x)
此函数返回角度为 x 弧度的正切。 |
4 | acos(x)
此函数返回 x 的反余弦的主值,以弧度表示。 |
5 | asin(x)
此函数返回 x 的反正弦的主值,以弧度表示。 |
6 | atan2(x)
此函数返回 x 的反正切的主值,以弧度表示。 |
7 | atan2(y,x)
此函数返回 y/x 的反正切的主值,以弧度表示。 |
角度的正弦
在下面的示例中,我们将使用 sin() 计算以弧度表示的角度的正弦。
#include <iostream> #include <cmath> int main() { double angle = 1.0; // Angle in radians double result = sin(angle); std::cout << "The sine of " << angle << " radians is " << result << std::endl; return 0; }
输出
The sine of 1 radians is 0.841471
双曲函数
这些函数是三角函数的双曲对应物。
序号 | 函数及说明 |
---|---|
1 | cosh(x)
此函数返回 x 的双曲余弦。 |
2 | sinh(x)
此函数返回 x 的双曲正弦。 |
3 | tanh(x)
此函数返回 x 的双曲正切。 |
4 | acosh(x)
此函数返回 x 的非负面积双曲余弦。 |
5 | asinh(x)
此函数返回 x 的双曲余弦。 |
6 | atanh(x)
此函数返回 x 的面积双曲正切。 |
计算双曲正弦
在下面的示例中,我们将使用 sinh() 计算数字的双曲正弦。
#include <iostream> #include <cmath> int main() { double value = 1.0; double result = sinh(value); std::cout << "The hyperbolic sine of " << value << " is " << result << std::endl; return 0; }
输出
The hyperbolic sine of 1 is 1.1752
指数和对数函数
这些函数处理指数和对数计算。
序号 | 函数及说明 |
---|---|
1 | exp(x)
此函数返回 x 的以 e 为底的指数函数,即 e 的 x 次幂:e^x。 |
2 | frexp(x)
此函数将浮点数 x 分解为其二进制有效数和 2 的整数指数。 |
3 | log(x)
此函数返回 x 的自然对数。 |
4 | log10(x)
此函数返回 x 的常用(以 10 为底)对数。 |
5 | modf(x)
将 x 分解为整数部分和小数部分。 |
6 | exp2(x)
此函数返回 x 的以 2 为底的指数函数,即 2 的 x 次幂:2^x。 |
7 | ilogb(x)
此函数返回 |x| 的对数的整数部分,使用 RADIX 作为对数的底。 |
8 | log1p(x)
此函数返回 1 加 x 的自然对数。 |
计算指数值
在下面的示例中,我们将使用 exp() 计算 e^2。计算 e(欧拉数)的给定输入的幂的指数值。
#include <iostream> #include <cmath> int main() { double exponent = 2.0; double result = exp(exponent); std::cout << "The value of e^" << exponent << " is " << result << std::endl; return 0; }
输出
The value of e^2 is 7.38906
幂函数
这些函数处理与幂和根相关的计算。
序号 | 函数及说明 |
---|---|
1 | pow(x,y)
此函数返回底数的指数次幂。 |
2 | sqrt(x)
此函数返回 x 的平方根。 |
3 | cbrt(x)
此函数返回 x 的立方根。 |
4 | hypot(x,y)
此函数返回直角三角形的斜边,其直角边为 x 和 y。 |
幂函数示例
在下面的示例中,我们将使用 pow() 函数返回底数的指数次幂的结果。
#include <iostream> #include <cmath> int main() { double base = 2.0, exponent = 3.0; double result = pow(base, exponent); std::cout << base << " raised to the power of " << exponent << " is " << result << std::endl; return 0; }
输出
2 raised to the power of 3 is 8
误差和伽马函数
cmath 库包含误差函数 (erf) 和伽马函数 (tgamma) 等特殊函数,这些函数用于统计、物理等各个领域。
序号 | 函数及说明 |
---|---|
1 | erf(x)
此函数返回 x 的误差函数值。 |
2 | erfc(x)
此函数返回互补误差函数。 |
3 | tgamma(x)
此函数返回 x 的伽马函数。 |
4 | lgamma(x)
此函数返回 x 的伽马函数的绝对值的自然对数。 |
舍入和余数函数
这些函数处理舍入和余数计算。
序号 | 函数及说明 |
---|---|
1 | ceil(x)
向上舍入 x,返回不小于 x 的最小整数值。 |
2 | floor(x)
向下舍入 x,返回不大于 x 的最大整数值。 |
3 | round(x)
此函数返回最接近 x 的整数值,中间值舍入远离零。 |
4 | trunc(x)
将 x 舍入到零,返回大小不超过 x 的最近整数值。 |
5 | fmod(x, y)
返回 numer/denom (x/y) 的浮点余数,向零舍入。 |
检索最小的整数
在下面的示例中,我们将使用 ceil(),它向上舍入浮点数,返回大于或等于输入的最小整数。
#include <iostream> #include <cmath> int main() { double value = 3.45; double result = ceil(value); std::cout << "The ceiling of " << value << " is " << result << std::endl; return 0; }
输出
The ceiling of 3.45 is 4
浮点操作函数
这些浮点操作函数用于处理浮点数。
序号 | 函数及说明 |
---|---|
1 | copysign(x, y)
此函数返回一个值,该值具有 x 的大小和 y 的符号。 |
2 | nan()
此函数返回类型为 double 的静默 NaN(非数字)值。 |
3 | nextafter(x, y)
此函数返回 x 之后朝 y 方向的下一个可表示的值。 |
4 | nexttoward(x, y)
此函数返回 x 之后朝 y 方向的下一个可表示的值。 |
最小值、最大值、差值函数
这些函数查找两个数字之间的最小值、最大值和绝对差值。
序号 | 函数及说明 |
---|---|
1 | fmin(x, y)
此函数返回其参数中的较小者:x 或 y。 |
2 | fmax(x,y)
此函数返回其参数中的较大者:x 或 y。 |
3 | fdim(x, y)
此函数返回 x 和 y 之间的正差。 |
其他函数
cmath 头文件提供了其他函数,特别是用于处理浮点数。
序号 | 函数及说明 |
---|---|
1 | fabs(x)
此函数返回 x 的绝对值:|x|。 |
2 | abs(x)
此函数计算整数或浮点类型的绝对值。 |
3 | fma(x,y,z)
此乘加函数计算 x 和 y 的乘积,然后将 z 加到结果中 (x*y+z)。 |