operator+,-,*,/ (std::complex)
| (1) | ||
|
template
<
class
T
>
std::
complex
<
T
>
operator
+
(
const
std::
complex
<
T
>
&
lhs,
|
(C++20 前) | |
|
template
<
class
T
>
constexpr
std::
complex
<
T
>
operator
+
(
const
std::
complex
<
T
>
&
lhs,
|
(C++20 起) | |
| (2) | ||
|
template
<
class
T
>
std::
complex
<
T
>
operator
+
(
const
std::
complex
<
T
>
&
lhs,
|
(C++20 前) | |
|
template
<
class
T
>
constexpr
std::
complex
<
T
>
operator
+
(
const
std::
complex
<
T
>
&
lhs,
|
(C++20 起) | |
| (3) | ||
|
template
<
class
T
>
std::
complex
<
T
>
operator
+
(
const
T
&
lhs,
|
(C++20 前) | |
|
template
<
class
T
>
constexpr
std::
complex
<
T
>
operator
+
(
const
T
&
lhs,
|
(C++20 起) | |
| (4) | ||
|
template
<
class
T
>
std::
complex
<
T
>
operator
-
(
const
std::
complex
<
T
>
&
lhs,
|
(C++20 前) | |
|
template
<
class
T
>
constexpr
std::
complex
<
T
>
operator
-
(
const
std::
complex
<
T
>
&
lhs,
|
(C++20 起) | |
| (5) | ||
|
template
<
class
T
>
std::
complex
<
T
>
operator
-
(
const
std::
complex
<
T
>
&
lhs,
|
(C++20 前) | |
|
template
<
class
T
>
constexpr
std::
complex
<
T
>
operator
-
(
const
std::
complex
<
T
>
&
lhs,
|
(C++20 起) | |
| (6) | ||
|
template
<
class
T
>
std:: complex < T > operator - ( const T<span class=" |
实现复数运算及复数/标量混合运算的二元运算符。标量参数将被视为实部等于参数值、虚部为零的复数。
目录 |
参数
| lhs, rhs | - | 参数:可以是两个复数,或一个复数与一个匹配类型的标量( float , double , long double ) |
返回值
注释
由于 模板实参推导 不考虑隐式转换,这些运算符不能用于混合整数/复数运算。在所有情况下,标量的类型必须与复数底层类型保持一致。
GCC编译选项"-fcx-limited-range"(包含在"-ffast-math"中)通过移除浮点边界情况检查来改变复数乘法/除法的行为。这会影响循环向量化。
示例
#include <complex> #include <iostream> int main() { std::complex<double> c2(2.0, 0.0); std::complex<double> ci(0.0, 1.0); std::cout << ci << " + " << c2 << " = " << ci + c2 << '\n' << ci << " * " << ci << " = " << ci * ci << '\n' << ci << " + " << c2 << " / " << ci << " = " << ci + c2 / ci << '\n' << 1 << " / " << ci << " = " << 1.0 / ci << '\n'; // std::cout << 1.0f / ci; // 编译错误 // std::cout << 1 / ci; // 编译错误 }
输出:
(0,1) + (2,0) = (2,1) (0,1) * (0,1) = (-1,0) (0,1) + (2,0) / (0,1) = (0,-1) 1 / (0,1) = (0,-1)
参见
|
两个复数或复数与标量的复合赋值运算
(公开成员函数) |
|
|
对复数应用一元运算符
(函数模板) |