相关疑难解决方法(0)

为什么在函数上使用函子?

相比

double average = CalculateAverage(values.begin(), values.end());
Run Code Online (Sandbox Code Playgroud)

double average = std::for_each(values.begin(), values.end(), CalculateAverage());
Run Code Online (Sandbox Code Playgroud)

使用函子而不是函数有什么好处?是不是第一个更容易阅读(甚至在添加实施之前)?

假设仿函数定义如下:

class CalculateAverage
{
private:
   std::size_t num;
   double sum;
public:

   CalculateAverage() : num (0) , sum (0)
   {
   }

   void operator () (double elem) 
   {
      num++; 
      sum += elem;
   }

   operator double() const
   {
       return sum / num;
   }
};
Run Code Online (Sandbox Code Playgroud)

c++ stl functor

54
推荐指数
3
解决办法
2万
查看次数

标签 统计

c++ ×1

functor ×1

stl ×1