hcnak.blog

posted at 2015-10-04 21:16:42 +0000

C++获取数组元素数目(数组长度)

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]);

有关_msize,请访问MSDN查阅



© kanchzl AT kanchz DOT com

last updated on 2022-07-27 01:57:54 +0000