C++11にて、ラムダ式なるものが追加されました。
「猫でもわかるC++プログラミング」には、述語関数で利用するとちょっぴり便利などと言うようなことがかかれていますが、正直私ほどのレベルではこれだけのためにわざわざラムダ式を追加する必要があったのかな?と感じてしまいます。わざわざ追加されているということは、何か有用な使い方があるはず!
是非ご教授ください。
#include <iostream>
#include <algorithm>
#include <vector>
#include <windows.h>
using namespace std;
int main() {
vector<int> v;
vector<int>::iterator s, e;
for (int i = 0; i < 5; i++) // vに値を追加する
v.push_back(i * i);
s = v.begin();
e = v.end();
// 述語関数をラムダ式で記述して、for_eachを呼び出す
for_each(s, e, [](int x) {
if (x % 2 == 0)
cout << x << "は偶数です。" << endl;
else
cout << x << "は奇数です。" << endl;
});
system("pause");
return 0;
}