还有更多有用的函子用例吗?

问题描述 投票:-1回答:1

我正在尝试了解需要使用函子的情况。 Stackoverflow和其他网站上的大多数答案都着重于能够针对函子的好处定义不同的加法器或乘数。

使用函子可以超越它们吗?函子还有什么其他用途?

c++ functor
1个回答
0
投票

通常,函子与需要某种功能对象的其他API调用一起使用。例如,未定义operator()operator<(等)的用户定义对象的排序向量。

在某些情况下,一组函子可能被证明是有用的。当您有几种算法在功能上执行相同的操作但达到不同水平的准确性时,就会出现这种情况。这种情况经常会发生一些数值优化问题:给定矩阵的一般形式,我们可能会使用其他技术来找到线性方程的解(例如,稀疏问题与稠密问题模型可以使用不同的算法来对矩阵求逆) 。

特别是,您应该考虑函子与lambda。在现代C ++版本中,除非您要实现需要以函子(或lambda)作为参数的函数/方法,否则实际上不需要指定函子。有一些情况需要考虑:您是否需要单元测试?函子本身是将来功能的原型吗?等

© www.soinside.com 2019 - 2024. All rights reserved.