64,642
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
template<typename T>
int Tlength(T a)
{
int len = 0;
while (a[len])
{
len++;
}
return len;
}
void main()
{
int a[] = { 1,2,4 };
int s = Tlength(a);
cout << s << endl;
cin.ignore();
}
std::end(xxx) - std::begin(xxx)
template<typename T, size_t n>
int Tlength(T (&a)[n])
{
int a.len = 0;
while (a.len < n)
{
len++;
}
return len;
}
3.或者添加一个长度参数
4.如果不能修改函数。我会设计一个类
IntArrary不过需要重载[],=,++运算符。
5.虽然c++建立在c之上,并大于c. 但是内部的指针是跨越不了的。
template<typename T>
int Tlength(T a, size_t length)
{
int len = 0;
while (len < length)
{
len++;
}
return len;
}
template<typename T, size_t n>
int Tlength(T (&a)[n])
{
int len = 0;
while (len < n)
{
len++;
}
return len;
}