我认为这是一个简单的问题,但它让我发疯:我想从一个方法返回多个数组,调用方法事先并不知道它们的大小.所以我必须在方法中创建那些数组(与仅填充它们相反)并且我无法使用它们返回它们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将是最好的(意思是最干净的)方法.然而,伙计们,这不是问题.
返回一个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)