我想将2D数组的元素设置为零,但我想通过变量定义数组。 之后,我想打印这个矩阵。 我找到的解决方案,例如这里用零初始化多维数组,仅当矩阵定义为MyArray[12][8]
时才起作用,而我需要将它们定义为
int n = 80;
int m =100;
double myArray[n][m];
当我试图实现一个打印2D数组的函数时,也遇到了同样的问题。 例如:
template <typename T, size_t N, size_t M >
void Print2D_dArray(T(&myarray)[N][M]){
for(int i=0; i<N; i++){
for(int j=0; j<M; j++){
std::cout << myarray[i][j] << " ";
}
std::cout << std::endl;
}
}//Print2D_dArray
当我传递像MyArray[10][10]
这样的矩阵时,它将编译并打印数组。 当我使用变量时,我会得到错误“模板参数演绎/替换失败”。
模板参数在编译时计算,因此只能使用常量变量。 怎么样
template <typename T>
void Print2D_dArray(T &myArray[][], size_t N, size_t M)
{。。。}