配列の要素数を計算するのは簡単です:
int myarr[] ={1,2,3};
int myarrsize = sizeof(myarr)/sizeof(myarr[0]);
しかし、どうすれば2D配列の行数を計算できますか?
int my2Darr[][3]={{1,2,3},{4,5,6}};
int my3DarrRows = ???
出来ますか?
同じ方法。したがって、次のいずれかです。
sizeof(my2Darr)/sizeof(my2Darr[0])
また:
sizeof(my2Darr[0])/sizeof(my2Darr[0][0])
「行」の意味によって異なります。
サイズが既にわかっている 2 番目の配列サイズを指定しない限り、コードはコンパイルされません。
int my2Darr[][3]={{1,2,3},{4,5,6}};
^^^
では、 2D 配列の行数を計算するにはどうすればよいのでしょうか。
template <class T, unsigned N, unsigned N1>
int length(T (&)[N][N1])
{
return N;
}
列サイズが必要な場合は、N1
代わりに戻ります
sizeof(arr[0])/sizeof(arr[0][0])