0
#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. 

안녕하세요, 저는이 코드를 가지고 있으며 레드햇 리눅스에서 인텔 C++로 잘 작동하고 있습니다. 이제 VS 2010에서 컴파일 할 때 "오류 C2106 : '=': 왼쪽 피연산자가 l- 값이어야합니다. '라는 오류 메시지가 나타납니다. MSDN ref, stackflow에 대한 이전 게시물을 찾았지만 couldnt 수정했습니다. "new"와 관련이 있습니까?VS2002에서 복소수로 문제가 발생했습니다.

도움/참고 사항을 높이 평가할 것입니다.

답변

4

imx_vector[i].real()imx_vector[i].imag()double&이 아니라 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]); 
+0

신난다, 두 번째 버전은 트릭을했다. 엄청 고마워... –

관련 문제