【问题标题】:issues with complex number in VS 2010VS 2010 中的复数问题
【发布时间】:2014-11-01 01:21:55
【问题描述】:
#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 中使用 intel c++ 运行良好。现在,当我在 VS 2010 中编译它时,我收到错误“错误 C2106:'=':左操作数必须是左值”。 我查看了 MSDN ref,以前关于 stackflow 的帖子,但无法修复它。 跟“新”有关系吗?

任何帮助/参考将不胜感激。

【问题讨论】:

    标签: c++ visual-studio-2010 visual-c++ new-operator complex-numbers


    【解决方案1】:

    imx_vector[i].real()imx_vector[i].imag() 返回 double,而不是 double&amp;

    您的意思可能是 (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]);
    

    【讨论】:

    • 太棒了!,第二个版本成功了。非常感谢...
    猜你喜欢
    • 2019-05-26
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2019-05-01
    • 2011-10-29
    相关资源
    最近更新 更多