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

标签 c++ arrays class

在这个程序中,我被要求处理存储在 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/

相关文章:

c++ - 在同一函数中定义变量及其静态等效项

python - 当类中的函数返回一个值时,它返回到哪里?

c++ - 初始化类中的模板对象 (c++)

c++ - 在对象方法中使用 new 运算符

c++ - 调用DrawText时DT_NOFULLWIDTHCHARBREAK有什么作用?

c++ - 如何在没有某种数组的情况下输入多个值

arrays - Redis Lua 脚本 - 如何将数组作为参数传递给 nodejs 中的 Lua 脚本?

c++ - 从具有两列的文件加载二维数组

ios - 如何返回 numberOfRowsInSection?

c++ - 在 C++ 中重载 Subscript[] 运算符以设置类(量词)的大小。