我正试图将双倍*复杂*。 我只是有一个2×2矩阵d(双)的一个例子,我想将它转换为复杂的(C):铸造双倍*为复杂*
typedef complex<double> dcmplx;
int main() {
dcmplx *C;
double *D;
int N=2;
D=new double[N*N];
C=new dcmplx[N*N];
*C=static_cast<dcmplx>(*D);
for (int i=0;i<N;i++){
for (int j=0;j<N;j++){
D[i*N+j]=i+j;
}
}
for (int i=0;i<N;i++){
for (int j=0;j<N;j++){
cout <<D[i*N+j]<<"\t";
}
cout <<"\n";
}
cout <<"\n\n";
cout <<"Complex\n";
for (int i=0;i<N;i++){
for (int j=0;j<N;j++){
cout <<C[i*N+j]<<"\t";
}
cout <<"\n";
}
return 0;
}
这是做正确的方式?
我建议你检查一个['std :: complex'引用](http://en.cppreference.com/w/cpp/numeric/complex),注意[赋值运算符](http:///en.cppreference.com/w/cpp/numeric/complex/operator%3D)。 –