проблемы с комплексным номером в VS 2010

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.

Привет, У меня есть этот код и хорошо работал с Intel c++ в redhat linux. Теперь, когда я скомпилирую его в VS 2010, я получаю ошибку "ошибка C2106: '=': левый операнд должен быть l-значением". Я просмотрел сообщение MSDN ref, предыдущие сообщения в стеке, но не смог его исправить. Что-то связано с "новым"?

Любая помощь/ссылка будут высоко оценены.

Теги:
visual-c++
visual-studio-2010
complex-numbers
new-operator

1 ответ

5
Лучший ответ

imx_vector[i].real() а также imx_vector[i].imag() возвращает double, а не double&.

Вероятно, вы имели в виду (С++ 98):

imx_vector[i] = std::complex<double>(0.0, mx_vector[i]);

или (С++ 11):

imx_vector[i].real(0.0);
imx_vector[i].imag(mx_vector[i]);
  • 0
    Круто!, Вторая версия сделала свое дело. Благодаря тонну...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню