我的代码有问题.我有一些类的输入,nmax和mmax.这些在标题中定义为
int nmax;
int mmax;
Run Code Online (Sandbox Code Playgroud)
然后我有一些数组,在标题中定义为
double* Nline;
double** NMline;
Run Code Online (Sandbox Code Playgroud)
然后我想在主程序中分配它们.首先,我从输入中分配nmax和max值
nmax = nmax_in;
mmax = mmax_in;
Run Code Online (Sandbox Code Playgroud)
然后我分配数组
Nline = new double [nmax];
NMline = new double [nmax][mmax];
Run Code Online (Sandbox Code Playgroud)
问题是,1D阵列是这样分配的.但是2D数组没有 - 编译器写道:表达式必须具有常量值
为什么分配了NLine而NMline没有?
我理解,但我不知道如何在我的程序中这样做,为什么1D数组这个分配是好的.非常感谢您的帮助
我在使用complex.h中的函数时遇到问题.我有一些数字
typedef complex<double> cmplx;
cmplx N;
double x;
double y;
Run Code Online (Sandbox Code Playgroud)
现在我需要对它们进行操作:
double k = real(N);
cmplx NI = complex(x,y);
double l = imag(N);
Run Code Online (Sandbox Code Playgroud)
这些作品都没有.怎么了?我曾尝试写creal,cimag,但没有任何作用......编译器写道:
error: argument list for class template "std::complex" is missing
Run Code Online (Sandbox Code Playgroud)
请帮忙
谢谢
编辑
再次感谢您的帮助,但现在我遇到了一个新问题.如果我有一个cmplx数字的数组Arr [N],现在我需要Arr [i]的真实部分我写了
realArray[5] = ComplexArray[5].real();
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
error: expression must have class type
Run Code Online (Sandbox Code Playgroud)
real()或imag()函数的错误是相同的