在不使用其他容器的情况下,用sizeof关键字来获取数组长度:

template <class T>
int length(T& a) {
	return sizeof(a) / sizeof(a[0]);
}

注意,目前就发现上面这一种方法,使用时直接用length(arr)即可,其中arr可以是任何类型。

下面列举的都会出错

//错误一
template <class T>
int length(int& a) {
	return sizeof(a) / sizeof(a[0]);
}
//错误二
int length(int& a) {
	return sizeof(a) / sizeof(a[0]);
}
//错误三
int length(int *a) {
	return sizeof(a) / sizeof(a[0]);
}



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐