为了账号安全,请及时绑定邮箱和手机立即绑定

把指针传给模板函数,让函数获得数组长度

把指针传给模板函数,让函数获得数组长度

C++
爆炸的游戏手柄 2016-12-10 20:45:48
我写了一个模板的快速排序 用一个指针做参数 template<class T> void Qsort(T p[],int L,int R) {//这里想让函数自己获得数组长度 R=sizeof(p)/sizeof(T); ………… } 但是传过来的p的长度是8,p是个含10个int数组 p的长度应该是40
查看完整描述

1 回答

?
onemoo

TA贡献883条经验 获得超454个赞

函数(包括函数模板)的参数是数组类型的,其会被视为指针类型(这里其实是参数自动转型)。 所以这里的 T p[] 相当于 T *p,p 都不算是数组,当然无法实现你的想法了。

这里你可以将 p 声明为引用类型:T &p,这时 p 会被视为数组引用类型,T 才会被推导为数组引用类型

查看完整回答
反对 回复 2016-12-10
  • 1 回答
  • 0 关注
  • 1209 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信