gpt4 book ai didi

c++ - 如何使类函数返回数组然后调用并将其存储在main中

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

在这个程序中,我被要求处理存储在 file.txt 中的一定数量的值。

我有一个类,它有一个名为 Absolute_frequency 的公共(public)函数,它返回一个指向在名为 abs_freq[] 的函数中创建的数组的指针。我的问题是我现在需要将这个数组保存到我的 main 中的另一个数组中。

int *Data::Absolute_frequency() {

/*Here I created 2 arrays that store values representing max and min limit
of certain intervals (eg. 0 to 20, 21 to 40, 41 to 60, etc...)

And then I run my code thru each of these intervals and count how many
values are in them, and store it in abs_freq[]:*/

int *abs_freq=new int [num_intervals]();

for (int j = 0; j < num_values; j++)
{
for (int i = 0; i < num_intervals; i++)
{
if (values[j] >= intervals_min[i] && values[j]<=intervals_max[i])
{
abs_freq[i]++;
}
}
}

return abs_freq;
}

根据我的测试,数组 abs_freq[i] 正在存储预期的内容,现在我的问题是我需要将这个数组传递到我的 main() 中。我试过这样的事情,但正如我所料,它只传递了 abs_freq 的第一个值:

int main(){

Data data;
int *absolute_freq = new int[num_intervals]();
...
for (int i = 0; i < num_intervals; i++)
{
absolute_freq[i] = *data.Absolute_frequency();
}

for (int i = 0; i < num_intervals; i++)
{
printf("Absolute frequency interval %d: %d \n", i+1,absolute_freq[i]);
}
....
}

如何存储整个数组而不是第一个值?

最佳答案

您可以通过在 main 函数中使用一个指针变量来实现,并使用该函数返回的指针对其进行初始化:

int* absolute_freq = data.Absolute_frequency();

请记住,一旦您处理完数组,就必须delete[]它。

关于c++ - 如何使类函数返回数组然后调用并将其存储在main中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44572526/

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