在c++中初始化复数数组

visual Initializing complex number array in C++

本文关键字:数数 数组 初始化 c++      更新时间:2023-10-16

我需要创建一个包含复数的数组。我使用下面的代码来初始化它。

std::complex<double> Uf[2]={(1, 2),(3, 4)};

我期望Uf[0]是1 + 2*iUf[1]3+ 4*i,但当我调试程序时,我发现虚数值显示为真实的,并且令人惊讶的虚数值对于两个数字都是零(即Uf[0]是真实的:2.0000.. image: 0.0000 ....)Uf[1]是真实的:4.0000 ..图片:0.0000 ..谁能告诉我怎么解决这个问题?

谢谢

这是因为您使用了逗号操作符,所以将分别用24初始化复杂值。将括号替换为大括号:

std::complex<double> Uf[2]={{1, 2},{3, 4}};

如果以上不能工作,说明你的编译器不兼容c++ 11,你必须显式地创建数组复杂成员:

std::complex<double> Uf[2]={std::complex<double>(1, 2),std::complex<double>(3, 4)};

数组初始化错误。试试这个:

std::complex<double> Uf[2]={{1, 2},{3, 4}};