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