采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,16行这里的 less(arr[j],arr[minIndex]) 不是直接定义这样一个函数就可以了吗?
template<typename T> bool less(T a, T b){ return a<b; }
传入函数指针作为参数啥意思? 传入的指针指向less函数? 还是什么呢? 是这样的形参吗 bool (*p)(T,T)?这里不是很懂 望指教
重编辑了,原视频的这段代码:您说将less函数以指针的形式传递到排序算法中作为参数。
抱歉,我没有理解你的问题。这一小节具体代码哪里使用了函数指针?
您说“将less函数以指针的形式传递到排序算法中作为参数” 这句不是很理解
其实我不记得课程里有讲这个内容了。但是你的理解是正确的。关键是 less 应该是由用户定义的,而不是由算法的编写者定义的。算法的编写者不知道用户要怎么比较两个元素,所以比较的函数需要用户以参数的形式传进算法函数中。传一个函数作为参数,就需要使用函数指针了。不过这个课程没有使用这样的代码编写方式。 其实我们在这一小节,把 Student 的比较方式,写在 Student 类中,使用重载 < 的方式,本质也是用户在外面定义了比较方式,只不过这个比较方式和 Student 类绑定在了一起,借由 Student 这个类型让算法知道了如何作比较。继续加油!:)
多谢老师~明白了
登录后可查看更多问答,登录/注册
课程专为:短时间内应对面试、升职测评等艰巨任务打造
8.7k 21
5.7k 3
4.8k 5
1.3k 18