Obliczenia na liczbach zespolonych – operator * nie znaleziony

0

Piszę kod robiący obliczenia na liczbach zespolonych
jedyne co mi się udaje to stworzenie liczby przez konstruktor, natomiast coś takiego

complex<double> mycomplex = 2.0 + 2.0*I;

wyrzuca error:

żaden operator "*" nie pasuje do tych argumentów operacji

w internecie nie mogę nic znaleźć na ten temat,

0

Czym jest I?

0

podobno jest taka stała w bibliotece complex.h i odpowiada za jednostkę urojoną
jeśli jestem w błędzie to chodzi mi o znalezienie takiej zmiennej odpowiadającej za jednostkę urojoną żeby dało się ją podstawić w działaniach

edit
fragment z biblioteki complex

#define _Complex_I  (0.0F +  1.0iF)
#define I _Complex_I
1

<complex> z C++ i <complex.h> z C99 to zupełnie różne i niekompatybilne rzeczy. I występuje jako magiczne makro w C, a w C++ nie ma go wcale.

0

to jak w takim razie operować na liczbach zespolonych

1

Używaj std::complex, zamiast szukać rozwiązań z C

complex<double> I{0,1};
complex<double> mycomplex = 2.0 + 2.0*I;

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0