Lio*_*ing 0 c++ multidimensional-array
我想计算2D数组中的项目数.
例如
char arr[][10] = {"Hello", "I'm", "Jack"};
Run Code Online (Sandbox Code Playgroud)
先前的阵列具有3行(Hello,I'm,Jack)和类似的10柱(Hello5从10长度).
每个人都知道,当我们想要获得具有单个维度的数组时,我们会执行以下操作.
int size = (sizeof(arr) / sizeof(char));
Run Code Online (Sandbox Code Playgroud)
但是现在我们需要一种方法来了解数组中有多少行?
另一种方法是知道,阵列中还有多少列,单独?
你可以这样做.
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;
}
Run Code Online (Sandbox Code Playgroud)
C++支持另一种调用大小的方法 std::extent
更一般的形式是
int n_rows = sizeof(arr)/sizeof(arr[0]);
int n_cols = sizeof(arr[0])/sizeof(arr[0][0]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2444 次 |
| 最近记录: |