在不使用其他容器的情况下,用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]);
}