#include <iostream>
template<typename T, int count>
T sum(T (&t)[count])
{
T retVal(0);
for(int i = 0; i < count; i++)
{
retVal += t[i];
}
return retVal;
}
int main()
{
int A[] = {1,2,3,4,5,6,7,8,9,0};
std::cout <<sum(A);
return 0;
}
上面的代码利用模板推导出数组的大小,并传入函数,这样操作比较与数组指针加长度的方式避免了输入长度与实际不匹配的问题。相比见sizeof(array[])/sizeof(type)的形式,改方法采用的时编译器执行,节约了运行期的时间。