我写了一个模板的快速排序
用一个指针做参数
template<class T>
void Qsort(T p[],int L,int R)
{//这里想让函数自己获得数组长度
R=sizeof(p)/sizeof(T);
…………
}
但是传过来的p的长度是8,p是个含10个int数组
p的长度应该是40
1 回答
![?](http://img1.sycdn.imooc.com/54584f6100019caf02200220-100-100.jpg)
onemoo
TA贡献883条经验 获得超454个赞
函数(包括函数模板)的参数是数组类型的,其会被视为指针类型(这里其实是参数自动转型)。 所以这里的 T p[] 相当于 T *p,p 都不算是数组,当然无法实现你的想法了。
这里你可以将 p 声明为引用类型:T &p,这时 p 会被视为数组引用类型,T 才会被推导为数组引用类型。
- 1 回答
- 0 关注
- 1209 浏览
添加回答
举报
0/150
提交
取消