posted at 2015-10-04 21:16:42 +0000
C++不像Java和C#,C++语言没有提供获得数组长度的函数,但是对于字符串,提供了strlen用来获取字
符串字符数目。但是对于其它类型的数组我们如何获取长度呢?
我们以一个整形数组为例:
int ia[10];
int len = sizeof(ia)/ia[0];
len即为该int数组ia的元素个数。
原因嘛是因为,sizeof(ia)
是一个数组总共的字节数,而sizeof(ia[0])
是一个元素占的字节数。所以相
除就是元素个数。
对此,我们可以利用c++的模版特性,写一个函数,可以用来获取任意类型数组的数组长度。代码如下:
template<class T>
int GetArrayLength(T & array) {
return ( sizeof(array)/sizeof(array[0]) );
}
也可以通过以下函数实现:
_msize(array)/sizeof(array[0]);
© kanch
→ zl AT kanchz DOT com
last updated on 2022-07-27 01:57:54 +0000