C++:返回多个NEW数组

aRe*_*ess 1 c++ arrays

我认为这是一个简单的问题,但它让我发疯:我想从一个方法返回多个数组,调用方法事先并不知道它们的大小.所以我必须在方法中创建那些数组(与仅填充它们相反)并且我无法使用它们返回它们return.

所以我想要的是这样的方法签名:

void giveMeArray(int[] *anArray)
Run Code Online (Sandbox Code Playgroud)

方法签名只有一个参数来简化示例,请假设我也可以有一个签名

void giveMeArrays(int[] *anArray, float[] *anotherArray)
Run Code Online (Sandbox Code Playgroud)

在该方法内部,giveMeArray我将构造数组

*anArray = new int[5];
Run Code Online (Sandbox Code Playgroud)

我会用这个方法来调用

int[] result;
giveMeArray(&result);
Run Code Online (Sandbox Code Playgroud)

但是,所有这些(从方法签名开始)至少在语法上是错误的.请原谅我现在手头没有编译错误,我很确定你们中的一些人会知道什么是错的.

编辑我知道 std :: vector将是最好的(意思是最干净的)方法.然而,伙计们,这不是问题.

Luc*_*ore 5

返回一个vector(这是C++毕竟)

void giveMeArray(std::vector<int>& anArray)
{
   anArray = std::vecotr<int>(5);
}
Run Code Online (Sandbox Code Playgroud)

返回向量向量:

void giveMeArray(std::vector<std::vector<int> >& anArray)
Run Code Online (Sandbox Code Playgroud)