在C++中创建复数数组

Creating an array of Complex numbers in C++

本文关键字:数数 数组 创建 C++      更新时间:2023-10-16

我想创建一个数组来存储复数,这样第一个输入是条目数 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 ++编程的新手。请告诉我我哪里出错了.

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

要克服这两个问题,请使用std::vector而不是普通数组:

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