如何在c++中使用函数打印2d数组

How to print out 2d arrays with function in C++?

本文关键字:函数 打印 2d 数组 c++      更新时间:2023-10-16

我正在尝试制作一个打印出二维数组的函数。我做了一个打印1d数组的程序。

 #include <iostream>
 using namespace std;
void printArray (int theArray[],int sizeOfArray);
int main ()
{
int array1[3] = {1,3,7};
int array2[5] = {123,5,23,2,324};
printArray(array1, 3);
printArray(array2, 5);
}  
void printArray (int theArray[],int sizeOfArray){

for (int x=0; x<sizeOfArray; x++) {
    cout<<theArray[x] <<" ";
}
cout<<endl;  
}

我写了这些代码来打印2d数组,但是我失败了。

#include <iostream>
using namespace std;
void printArray (int theArray[][],int sizeOfRow, int sizeOfCol);
int main ()
{
int array[2][3] = {{1,3,7},{5,3,2}};
printArray(array, 2,3);

}
void printArray (int theArray[][],int sizeOfRow, int sizeOfCol){

for (int x=0; x<sizeOfRow; x++) 
    for (int y=0; y<sizeOfCol; y++) {
        cout<<theArray[x][y] <<" ";
}
cout<<endl;
}

我的编译器说数组有不完整的元素类型'int[]'。打印2d数组的正确代码是什么?

由于数组大小必须在编译时知道,因此可以使用模板为函数提供灵活性。

template< typename T, size_t N, size_t M >
void printArray( T(&theArray)[N][M]  ) {
    for ( int x = 0; x < N; x ++ ) {
        for ( int y = 0; y < M; y++ ) {
            cout << theArray[x][y] << " ";
        }
    }
}
printArray( array ); 

这是更好的,因为没有必要传递数组的尺寸任何地方,也为3D, 4D数组通过添加额外的参数到模板。

对于多维数组,您需要在函数声明中声明数组的大小。

所以你的方法需要看起来像:

void printArray (int theArray[][3],int sizeOfRow, int sizeOfCol)

打印二维数组的提示——使用变量r和c(即行和列)来可视化数组是如何打印出来的更容易。

如上所述,在传递2d数组时,语言需要列的大小。

函数头应该如下所示:

void printArray (int theArray[][3],int sizeOfRow, int sizeOfCol)