0

我想计算二维数组中的项目数。

例如

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

前一个数组有 3 行 ( Hello, I'm, Jack) 和 10 列 (Hello是 5 from 10 length)。

每个人都知道,当我们想要获得一维数组的计数时,我们执行以下操作。

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

但是现在我们需要一种方法来单独知道数组中有多少行?
另一种方法是,单独的数组中有多少列?

4

2 回答 2

8

你可以这样做。

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

于 2013-07-29T03:52:10.870 回答
5

更一般的形式是

int n_rows = sizeof(arr)/sizeof(arr[0]);
int n_cols = sizeof(arr[0])/sizeof(arr[0][0]);
于 2013-07-29T03:48:45.223 回答