我想创建一个数组来存储复数,这样第一个输入就是条目数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 ++编程的新手。请告诉我哪里出错了。
答案 0 :(得分:2)
首先,与cin >> n; Complex A[n]
一起引入的可变长度数组不是C ++标准的一部分,编译器可能不支持。
其次,如果您的编译器通常支持VLA,则不支持创建非POD (plain old data)类型的VLA,如std::Complex
。
要解决这两个问题,请使用std::vector
代替普通数组:
std::vector<Complex> A(n);