轻松入门C++ STL:深度解析仿函数及其优势
最编程
2024-01-12 14:44:20
...
如果可以用仿函数实现,那么你应该用仿函数,而不要用CallBack。原因在于:
-
仿函数可以不带痕迹地传递上下文参数。而CallBack技术通常使用一个额外的void*参数传递。这也是多数人认为CallBack技术丑陋的原因。
-
仿函数技术可以获得更好的性能,这点直观来讲比较难以理解。
仿函数作用
仿函数通常有下面四个作用:
- 作为排序规则,在一些特殊情况下排序是不能直接使用运算符<或者>时,可以使用仿函数。
- 作为判别式使用,即返回值为bool类型。
- 同时拥有多种内部状态,比如返回一个值得同时并累加。
- 作为算法for_each的返回值使用。
上一篇: C++优先队列实现及其应用