一开始看c++函数指针针的时候我是佷懵的因为不知道它有什么用,之后慢慢就发现了自己的愚昧无知
假设我们想实现一个数据结构,比如二叉搜索树堆。又或者是一個快排归并排序。
我们一般是直接在两个数要比较的时候直接采用运算符比较大小但是这样的缺点是,如果我要大顶堆就要单独写大頂堆小顶堆也要单独实现。
很明显这样的代码复用性很低两串除了比较运算符不同其他全部相同的代码自己看着也难受,这个时候就昰c++函数指针针出马的时候了比如下面我写的这个堆
(如果写错了告诉我一下,我写完没严谨的测试一下 因为重点是讲c++函数指针针)
上面那個函数里面有一个c++函数指针针;
这个指针在构造函数里初始化是cmp2,为了构建大顶堆
但是我们要小顶堆也很容易,Heap hh(cmp1);这样定义出来的hh就是小頂堆同理我们就可以实现自己的二叉搜索树等等。
比如下面的这个快排就是用传入的c++函数指针针来排序这样可以升序降序都没问题。、
同理其他排序也可以做到这样
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。