#include <complex>
using namespace std;
mx_vector = new double [NX]; //NX = 200
imx_vector = new complex<double> [NX];
i = 1;
imx_vector[i].real () = 0.0;
imx_vector[i].imag () = mx_vector[i]; //mx_vector[i] = 2.2
//This is part of a big program, so hiding the simple details like main() etc.
您好,我有这段代码,并且在 redhat linux 中使用英特尔 C++ 运行良好。现在,当我在 VS 2010 中编译它时,出现错误“错误 C2106:'=':左操作数必须是左值”。 我查阅了 MSDN 引用资料,以前关于 stackflow 的帖子,但无法修复它。 与"new"有关系吗?
我们将不胜感激任何帮助/引用。
最佳答案
imx_vector[i].real()
以及 imx_vector[i].imag()
返回 double
,而不是 双&
。
您的意思可能是 (C++98):
imx_vector[i] = std::complex<double>(0.0, mx_vector[i]);
或(C++11):
imx_vector[i].real(0.0);
imx_vector[i].imag(mx_vector[i]);
关于c++ - VS 2010 中的复数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25713825/