2015-02-07 96 views
0

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

代码:

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 << " "; 
    } 
} 

}

+0

你有,你尝试的示例代码? – TriHard8 2015-02-07 14:08:33

+0

减1链接倾销。 – 2015-02-07 14:32:48

+0

负回缩。 – 2015-02-07 14:36:57

回答

2
std::cout << rowsize << " "; 
你想显示什么数组不是你是阵列中

。 所以,如果你不知道现在有多少我有,你可以这样做: 无效multi_deimensional_array_printing(INT **参考,INT大小){

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; 
    } 
} 
0

你可以接收由参考阵列,并且使用模板参数推导推断的区段:

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