在C++中初始化和打印 2D 数组

Initializing and printing a 2D array in C++

本文关键字:打印 2D 数组 初始化 C++      更新时间:2023-10-16

我想将二维数组的元素设置为零,但我希望通过变量定义数组。之后,我想打印这个矩阵。我找到的解决方案,例如这里用零初始化多维数组,仅在矩阵定义为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]这样的矩阵时,它会编译并打印数组。当我使用变量时,我收到错误"模板参数推断/替换失败"。

模板参数在编译时计算,因此您只能使用 const 变量。怎么样

template <typename T>
void Print2D_dArray(T &myArray[][], size_t N, size_t M)

{ ... }