2015-02-07 62 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