提问者:小点点

用C++初始化和打印二维数组


我想将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]这样的矩阵时,它将编译并打印数组。 当我使用变量时,我会得到错误“模板参数演绎/替换失败”。


共1个答案

匿名用户

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

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

{。。。}

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(c++|初始化|打印|二维|数组)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?