gpt4 book ai didi

c++ - C++类中的动态数组

转载 作者:行者123 更新时间:2023-11-27 23:23:36 25 4
gpt4 key购买 nike

我有一个动态数组,我在类中使用一个函数为其分配内存:

double *val;
int n; // dimension

void alloc (int nn) { // memory allocation for vector
n = nn;
val = new double[n];
}

但是当我尝试将数据放入 main 中时,我遇到了以下问题:

当我输入时:

a.val[3] = {1.0 , 1.0 , 1.0};

我收到以下非常模棱两可的错误:

syntax error : missing ';' before '{'
syntax error : '{'

但是当我输入时:

a.val[1]=1.0;
a.val[2]=1.0;
a.val[3]=1.0;

它工作得很好。有人知道为什么吗?

最佳答案

你只能用这种方式初始化一个数组:

double a[3] = {1.0, 1.0, 1.0};

您的备选方案是:

void alloc (int nn) { // memory allocation for vector
n = nn;
val = new double[n];

// one option is:
for (int i = 0; i < n; i++)
{
val[i] = 1.0;
}

// or you can also do: (thanks to Benjamin)
std::fill_n(val, n, 1.0);

// or:
std::fill(val, val + n, 1.0);
}

关于c++ - C++类中的动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11064840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com