请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

传入函数指针作为参数啥意思呢老师

老师,16行这里的 less(arr[j],arr[minIndex]) 不是直接定义这样一个函数就可以了吗?

template<typename T>
bool less(T a, T b){
	return a<b;
}

传入函数指针作为参数啥意思? 传入的指针指向less函数? 还是什么呢?
是这样的形参吗 bool (*p)(T,T)?这里不是很懂 望指教

重编辑了,原视频的这段代码:您说将less函数以指针的形式传递到排序算法中作为参数。
图片描述

正在回答

1回答

抱歉,我没有理解你的问题。这一小节具体代码哪里使用了函数指针?

1 回复 有任何疑惑可以回复我~
  • 提问者 Lolita洛丽塔 #1
    您说“将less函数以指针的形式传递到排序算法中作为参数” 这句不是很理解
    回复 有任何疑惑可以回复我~ 2020-09-19 15:19:44
  • liuyubobobo 回复 提问者 Lolita洛丽塔 #2
    其实我不记得课程里有讲这个内容了。但是你的理解是正确的。关键是 less 应该是由用户定义的,而不是由算法的编写者定义的。算法的编写者不知道用户要怎么比较两个元素,所以比较的函数需要用户以参数的形式传进算法函数中。传一个函数作为参数,就需要使用函数指针了。不过这个课程没有使用这样的代码编写方式。
    其实我们在这一小节,把 Student 的比较方式,写在 Student 类中,使用重载 < 的方式,本质也是用户在外面定义了比较方式,只不过这个比较方式和 Student 类绑定在了一起,借由 Student 这个类型让算法知道了如何作比较。继续加油!:)
    回复 有任何疑惑可以回复我~ 2020-09-19 18:05:54
  • 提问者 Lolita洛丽塔 回复 liuyubobobo #3
    多谢老师~明白了
    回复 有任何疑惑可以回复我~ 2020-09-23 12:20:08
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信