小编mum*_*tei的帖子

C++ - 1D中的动态数组工作,2D中的相同功能不起作用

我的代码有问题.我有一些类的输入,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数组这个分配是好的.非常感谢您的帮助

c++ arrays

4
推荐指数
1
解决办法
1837
查看次数

C++中复杂的<double> - 不能使用imag(),complex(),real()

我在使用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()函数的错误是相同的

c++ complex-numbers

-1
推荐指数
1
解决办法
2103
查看次数

标签 统计

c++ ×2

arrays ×1

complex-numbers ×1