我有不同大小的恒定多维数组.我想将它们传递给一个函数.但是,我会得到错误的下标,数组的大小不同所以我不能把下标放在数组参数中.这个问题的解决方案是什么?
这是一个示例代码.实际的数组更大.
//ARRAY1
const double ARRAY1[3][2][2] =
{
{
{1.0,1.0},
{1.0,1.0},
}
,
{
{1.0,1.0},
{1.0,1.0},
}
,
{
{1.0,1.0},
{1.0,1.0},
}
}
//ARRAY2
const double ARRAY2[2][2][2] =
{
{
{1.0,1.0},
{1.0,1.0},
}
,
{
{1.0,1.0},
{1.0,1.0},
}
}
//How to declare the parameter?
double SomeFunctionToWorkWithBothArrays(const double arr[][][])
{
}
Run Code Online (Sandbox Code Playgroud)
Pup*_*ppy 14
你可以使用一个模板.
template<size_t first, size_t second, size_t third>
double SomeFunction(const double (&arr)[first][second][third]) {
return first + second + third;
}
Run Code Online (Sandbox Code Playgroud)
此函数引用三维双精度数组,其中所有维在编译时都是已知的.如果绝望,实际上可以通过模板获取此参考.