![]() |
1
5
我不明白为什么您需要模板方法模式。 为什么不将这些算法定义为可以传递给基准函数的函数呢?
然后这样称呼它:
当然,另一种方法可能是使用 CRTP (一个在编译时模拟虚拟函数的非常聪明的模式——它也适用于静态方法):
然后可以调用静态函数:
最后一点需要注意的是,这两种方法的开销都应该为零。与涉及虚拟函数的任何内容不同,编译器完全知道在这里调用哪些函数,并且可以并且将它们内联,从而产生与手工编写每个案例一样高效的代码。 |
![]() |
2
2
这是一个简单的模板化版本
|
![]() |
3
1
|
![]() |
4
0
在一个抽象的类中,你可以用一个Selk()方法来实现它,并且在线性搜索和二进制搜索中重写它。 您还可以使用函数指针(这将是我的首选解决方案)或boost::函数,或者模板化您的函数并传入一个函数。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |