#include <complex>
int main()
{
std::complex<double> two_i = std::sqrt(std::complex<double>(-4));
}
Run Code Online (Sandbox Code Playgroud)
要不就
std::complex<double> sqrt_minus_x(0, std::sqrt(std::abs(x)));
Run Code Online (Sandbox Code Playgroud)
sqrt(-x)其中x是正数是简单的0 + sqrt(x)*i.实际部分只有0.
一般来说,实部是x > 0 ? sqrt(x) : 0和虚部是x < 0 ? sqrt(x) : 0.