<complex>
定义容器类模板 complex
及其支持模板。
要求
标头:<complex>
命名空间: std
注解
一个复数是有序的实数对。 在纯粹几何术语中,复平面是真实的二维平面。 将复平面与实平面区分开来的特质在于它具有其他代数结构。 这种代数结构有两个基本操作:
加法,其定义为 (a, b) + (c, d) = (a + c, b + d)
乘法,其定义为 (a, b) * (c, d) = (ac - bd, ad + bc)
带复数加法和复数乘法操作的复数集在标准代数意义上为域:
加法和乘法的操作是可交换且相关联的,并且乘法通过加法分配的方式与在实数域上进行的实数加法和乘法完全相同。
复数 (0, 0) 是加法恒等元,(1, 0) 是乘法恒等元。
一个复数 (a, b) 的加法逆元是 (-a, -b),除 (0, 0) 外的所有此类复数的乘法逆元是
(a/(a2 + b2), -b/(a2 + b2))
通过以 z = a + bi 的形式(其中 i2 = -1)表示复数 z = (a, b),实数集的代数规则可应用于复数集及其分量。 例如:
(1 + 2i) * (2 + 3i) = 1 * (2 + 3i) + 2i * (2 + 3i) = (2 + 3i) + (4i + 6i2) = (2 - 6) + (3 + 4)i = -4 + 7i
复数系统是一个域,但它不是一个有序域。 不像域或实数及其子集,复数没有有序排列,因此不能按照对待实数的方式,将不等式用于复数。
表示复数 z 有三种常见形式:
笛卡尔坐标系:z = a + bi
极坐标系:z = r (cos p + i sin p)
指数坐标系:z = r * eip
在复数的这些标准表示形式中使用的术语请参照如下内容:
笛卡尔坐标实分量或实部 a。
笛卡尔坐标虚分量或虚部 b。
复数 r 的模数或绝对值。
参数或相位角 p(以弧度为单位)。
除非另行指定,否则可以返回多个值的函数需要对其参数返回大于 -π 且小于或等于 +π 的主值以使其保持单值。 所有的角度都必须以弧度表示,其中,圆周具有 2π 弧度(360 度)。
成员
函数
名称 | 描述 |
---|---|
abs |
计算复数的模数。 |
acos |
|
acosh |
|
arg |
从复数中提取自变量。 |
asin |
|
asinh |
|
atan |
|
atanh |
|
conj |
返回复数的复数共轭。 |
cos |
返回复数的余弦值。 |
cosh |
返回复数的双曲余弦值。 |
exp |
返回复数的指数函数。 |
imag |
提取复数的虚分量。 |
log |
返回复数的自然对数。 |
log10 |
返回复数的以 10 为底的对数。 |
norm |
提取复数的范数。 |
polar |
返回以笛卡尔坐标形式表示的,对应于指定模数和自变量的复数。 |
pow |
计算通过进行底数为复数的另一个复数次幂运算获得的复数。 |
proj |
|
real |
提取复数的实分量。 |
sin |
返回复数的正弦值。 |
sinh |
返回复数的双曲正弦值。 |
sqrt |
返回复数的平方根。 |
tan |
返回复数的正切值。 |
tanh | 返回复数的双曲正切值。 |
运算符
名称 | 描述 |
---|---|
operator!= |
测试两个复数是否不相等,这两个复数或其中一个可能属于其类型与实部和虚部的类型相同的子集。 |
operator* |
将两个复数相乘,这两个复数或其中一个可能属于其类型与实部和虚部的类型相同的子集。 |
operator+ |
将两个复数相加,这两个复数或其中一个可能属于其类型与实部和虚部的类型相同的子集。 |
operator- |
将两个复数相减,这两个复数或其中一个可能属于其类型与实部和虚部的类型相同的子集。 |
operator/ |
将两个复数相除,这两个复数或其中一个可能属于其类型与实部和虚部的类型相同的子集。 |
operator<< |
一个模板函数,用于将复数插入输出流。 |
operator== |
测试两个复数是否相等,这两个复数或其中一个可能属于其类型与实部和虚部的类型相同的子集。 |
operator>> |
一个模板函数,用于从输入流提取复值。 |
类
“属性” | 描述 |
---|---|
complex<double> |
显式专用化的类模板描述一个对象,该对象存储两个都为 double 类型的有序对象对,其中第一个对象表示复数的实部,第二个对象表示复数的虚部。 |
complex<float> |
显式专用化的类模板描述一个对象,该对象存储两个都为 float 类型的有序对象对,其中第一个对象表示复数的实部,第二个对象表示复数的虚部。 |
complex<long double> |
显式专用化的类模板描述一个对象,该对象存储两个都为 long double 类型的有序对象对,其中第一个对象表示复数的实部,第二个对象表示复数的虚部。 |
complex |
这个类模板描述一个对象,该对象用于表示复数系统和执行复杂算术运算。 |
文字
<complex> 标头定义以下用户定义的文本。 这些文本创建一个复数,实部为 0,虚部为输入参数的值。
声明 | 说明 |
---|---|
constexpr complex<long double> operator""il(long double d) constexpr complex<long double> operator""il(unsigned long long d) |
返回:complex<long double>{0.0L, static_cast<long double>(d)} |
constexpr complex<double> operator""i(long double d) constexpr complex<double> operator""i(unsigned long long d) |
返回:complex<double>{0.0, static_cast<double>(d)} 。 |
constexpr complex<float> operator""if(long double d) constexpr complex<float> operator""if(unsigned long long d) |
返回:complex<float>{0.0f, static_cast<float>(d)} 。 |