June 2018
Intermediate to advanced
348 pages
8h 45m
English
In classic C++, while using STL, we extensively use Function Objects or Functors by overloading Function Operators to write transformation filters and perform reduction on STL containers:
//----- LambdaThird.cpp#include <iostream>#include <numeric>using namespace std;//////////////////////////// Functors to add and multiply two numberstemplate <typename T>struct addition{ T operator () (const T& init, const T& a ) { return init + a; }};template <typename T>struct multiply { T operator () (const T& init, const T& a ) { return init * a; }};int main(){ double v1[3] = {1.0, 2.0, 4.0}, sum; sum = accumulate(v1, v1 + 3, 0.0, addition<double>()); cout << "sum = " << sum << endl; sum = accumulate(v1,v1+3,0.0, [] (const double& ...