把指针传给模板函数,让函数获得数组长度
我写了一个模板的快速排序
用一个指针做参数
template<class T>
void Qsort(T p[],int L,int R)
{//这里想让函数自己获得数组长度
R=sizeof(p)/sizeof(T);
…………
}
但是传过来的p的长度是8,p是个含10个int数组
p的长度应该是40
爆炸的游戏手柄
浏览 1210回答 1
1回答
-
onemoo
函数(包括函数模板)的参数是数组类型的,其会被视为指针类型(这里其实是参数自动转型)。 所以这里的 T p[] 相当于 T *p,p 都不算是数组,当然无法实现你的想法了。这里你可以将 p 声明为引用类型:T &p,这时 p 会被视为数组引用类型,T 才会被推导为数组引用类型。
打开App,查看更多内容