Using Lambdas in C++: Listing 4

Printing odd elements from Listing 3, using lambda expressions.

int main()
{
  // a list of 20 integers
  list<int> l(20);

  // here's the lambda version of GenerateFibonacci::operator()() in Listing 3.
  // I replaced private variables penultimate_ and last_ with static ones, so they maintain
  // values between consecutive invocations.
  generate(begin(l), end(l), [] () {
    static int penultimate(0), last(1);
    int current = penultimate + last;

    penultimate = last;

    return last = current;
  });

  // likewise, we do the same with Listing 3 function printIfOdd(int).
  for_each(begin(l), end(l), [] (int n) {
  if (n%2)
    cout << n << " is odd." << endl;
  });

  return 0;
}

About the Author

Diego Dagum is a software architect and developer with more than 20 years of experience. He can be reached at [email protected]

comments powered by Disqus

Featured

  • .NET Core Ranks High Among Frameworks in New Dev Survey

    .NET Core placed high in a web-dominated ranking of development frameworks published by CodinGame, which provides a tech hiring platform.

  • Here's a One-Stop Shop for .NET 5 Improvements

    Culled from reams of Microsoft documentation, here's a high-level summary of what's new for performance, networking, diagnostics and more, along with links to the nitty-gritty details for those wanting to dig in more.

  • Azure SQL Database Ranked Among Top 3 Databases of 2020

    Microsoft touted the inclusion of Azure SQL Database among the top three databases of 2020 in a popularity ranking by DB-Engines, which collects and manages information about database management systems, updating its lists monthly.

  • Time Tracker Says VS Code Is No. 1 Editor for Devs, Some Working 15+ Hours Per Day

    WakaTime, which does time tracking for programmers, released data for 2020 showing that Visual Studio Code is by far the top editor/IDE used by its coders, some of whom are hacking away for more than 15 hours per day.

Upcoming Events