用C ++创建一个复数数组

时间:2017-08-20 19:06:24

标签: c++

我想创建一个数组来存储复数,这样第一个输入就是条目数n。每个条目首先是数字的实部,然后是复杂部分。

Eg: n=2 
1.0 -1.0
0 3 

分别表示数字1-i,3i。 这是我试过的。

#include<iostream>
#include<complex>

typedef std::complex<double> Complex;

int main() {
int n;
std::cin>>n;
Complex A[n];

for(int i=0;i<n;i++)
std::cin>>A[i];

for(int i=0;i<n;i++)
std::cout<<A[i]<<" ";

return 0 ;
}

我是c ++编程的新手。请告诉我哪里出错了。

1 个答案:

答案 0 :(得分:2)

首先,与cin >> n; Complex A[n]一起引入的可变长度数组不是C ++标准的一部分,编译器可能不支持。 其次,如果您的编译器通常支持VLA,则不支持创建非POD (plain old data)类型的VLA,如std::Complex

要解决这两个问题,请使用std::vector代替普通数组:

std::vector<Complex> A(n);