2013-07-29 5 views
0

2D 배열의 항목 수를 계산하고 싶습니다. 예2D 배열의 항목을 계산하는 방법은 무엇입니까?

char arr[][10] = {"Hello", "I'm", "Jack"}; 

들어

이전 배열 3 행 (Hello, I'm, Jack)과 같은 열을 10 (10 Hello 길이가 5 임)이있다.

단일 차원의 배열 수를 얻으려는 경우 다음을 수행합니다.

int size = (sizeof(arr)/sizeof(char)); 

하지만 이제 배열의 몇 행을 알아야합니까?
그리고 또 다른 방법으로, 얼마나 많은 수의 열을 알고 있습니까?

+1

* 이전 배열 * 3 행 10 열이 - 당신의 10 어디서 어떤 그것이 내가, 모르는 것이 아니라 그건 틀렸다. –

답변

5

더 일반적인 형태는

int n_rows = sizeof(arr)/sizeof(arr[0]); 
int n_cols = sizeof(arr[0])/sizeof(arr[0][0]); 
7

당신은 이런 식으로 작업을 수행 할 수 있습니다.

template<typename T, size_t M, size_t N> 
size_t array_rows(const T (&arr)[M][N]) { 
    return M; 
} 

template<typename T, size_t M, size_t N> 
size_t array_columns(const T (&arr)[M][N]) { 
    return N; 
} 

C++의 크기라는지고의 또 다른 방법을 지원 std::extent

+1

+1의 경우 std :: extent –

관련 문제