c++ - VS 2010 中的复数问题

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

#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/

相关文章:

visual-c++ - LLVM 调试元数据中的 "retainedNodes"是什么?

c++ - 结构的隐式列表初始化构造函数

c++ - CMake:如何选择不同的外壳

c++ - pthreads:快速重新锁定引起的线程饥饿

asp.net-mvc-3 - 运行 IIS 5.1 的 MVC 3 无法使用 Windows 身份验证

c++ - 标识符未定义

c++ - 将结构体转换为整数合法吗?

asp.net - 设计师坚持使用 'System.Web.UI.WebControls' ,但该值不存在

visual-studio-2010 - 测试环境不复制我的文件

winapi - Process32Next 因 ERROR_INSUFFICIENT_BUFFER 而失败(Windows 7)