Este exemplo é a versão do FunctorDemo.cpp usando funções lambda
#include <iostream>
#include <map>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
  map<string, string> v;

  v["A"] = "ABC";
  v["B"] = "BCD";
  v["C"] = "CDE";
  v["D"] = "DEF";

  map<string, string>::iterator it;

  it = find_if( v.begin(), v.end(), [](pair<string,string> p) {
    return p.second == "CDE";
  }
  );

  if ( it != v.end() )
    cout << "Key found: " << (*it).first << endl;
}