多维数组的函数

A function for multidimensional arrays

我想要一个函数,以便打印多维数组的元素。该功能可能无效或无效。我尝试创建这样的函数,但无法获得结果。

代码:

void multi_deimensional_array_printing(int *(ref)[5], int size){

for (int *(ia)[5]{ref}; ia != ref + 5; ++ia) {// prob
    for (int rowsize{0}; rowsize != size; ++rowsize) {
        std::cout << rowsize << " ";
    }
}

}

std::cout << rowsize << " ";

您想显示数组中的内容,而不是您在数组中的位置。 所以如果你现在不知道有多少我可以做: void multi_deimensional_array_printing(int **ref, int size){

  for (size_t i = 0; ref[i] != NULL ; ++i) {
    for (size_t a = 0; a < size; ++a) {
      std::cout << ref[i][a] << " ";
    }
    std::cout << std::endl;
  }
}

在你的情况下:

void multi_deimensional_array_printing(int *(ref)[5], int size){

  for (size_t i = 0; i < 5 ; ++i) {
    for (size_t a = 0; a < size; ++a) {
      std::cout << ref[i][a] << " ";
    }
    std::cout << std::endl;
  }
}

您可以通过引用接收数组并使用模板参数推导推导出范围:

Live On Coliru

#include <iostream>

template <typename T, size_t N, size_t M>
void print(T (&arr)[N][M]) {
    for (size_t i = 0ul; i<N; ++i) {
        for (size_t j = 0ul; j<M; ++j)
            std::cout << arr[i][j] << " ";
        std::cout << "\n";
    }
}

int main() {
    int a[][3] = {
        { 1,2,3 },
        { 4,5,6 },
    };

    print(a);
}

版画

1 2 3 
4 5 6