【发布时间】:2021-05-28 01:14:39
【问题描述】:
我知道带有整数的动态数组的语法,但是当我尝试创建一个存储双精度值的动态数组时,它给了我一条错误消息。 (error: expression in new-declarator must have integral or enumeration type)
ifstream f("date.in");
ofstream g("date.out");
double n;
f >> n;
double* v = new double[n];
for(int i=0; i<n; i++)
f >> v[i];
我经常这样做
int n;
f >> n;
int* v = new int[n];
它有效。
【问题讨论】:
-
矢量是更好的方式
-
所以使用声明为双精度的 v[1000] 来代替?
-
即使数组存储
doubles,它存储的元素数量仍然是一个离散值。double n;应该是int n;或size_t n;或类似的。