在 C++ 中初始化复数数组
Posted
技术标签:
【中文标题】在 C++ 中初始化复数数组【英文标题】:Initializing complex number array in C++ 【发布时间】:2014-08-22 18:54:07 【问题描述】:我需要创建一个由复数组成的数组。我使用下面的代码来初始化它。
std::complex<double> Uf[2]=(1, 2),(3, 4);
我希望 Uf[0] 是 1 + 2*i
和 Uf[1]
是 3+ 4*i
但是当我调试程序时,我发现虚值显示为实数,令人惊讶的是,这两个数字的虚值都为零(即Uf[0]
是真实的:2.0000..
imag:0.0000
.... 和Uf[1]
是真实的:4.0000
.. imag:0.0000
.. 有人可以解释我如何解决这个问题吗?
谢谢
【问题讨论】:
我不是 100% 确定,但我认为std::vector
在这种情况下会是更好的选择!
【参考方案1】:
因为你使用了逗号操作符,所以复杂值会分别用2
和4
初始化。用花括号代替括号:
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);
【讨论】:
没有。它不适合我。我收到以下编译器错误。错误 C2552:“Uf”:无法使用初始化列表 1>“std::complex您正在初始化数组错误。试试这个:
std::complex<double> Uf[2]=1, 2,3, 4;
【讨论】:
以上是关于在 C++ 中初始化复数数组的主要内容,如果未能解决你的问题,请参考以下文章