????“Lambda ????”(lambda expression)???????????????Lambda????????????е?λ???????????????????е?lambda????(lambda abstraction)?????????????????????к????????????Lambda??????????????????????????????????????
????ISO C++ 11 ??????????????????Lambda???????????????£?
????[capture list] (parameter list) ->return type { function body }
???????г???“[ ]”?????в????б??????????“???????”??????????????????????壩????????????????????????????г??operator()?????????????????????????(closure type)??
????C++?У????lambda???????????????????????????????????????δ????????????????
???????????????????????lambda???????β?÷?????????????????
???????磺????<algorithm>?е?std::sort??ISO C++ 98 ??д???????д???compare??????
????bool compare(int &a?? int &b)
????{
????return a > b;  //????????
????}
??????????????????
????sort(a?? a + n?? compare);
???????????ISO C++ 11 ?????????Lambda?????????????д??
????sort(a?? a + n?? [](int a?? int b){return a > b;});   //????????
???????????????????????????
????????Lambda??????????????????????????????????????????????????auto???????????????
????auto f = [](int a?? int b){return a > b;});
???????????????????????????????Lambda??C++????????????????磺
????autof = [x](int a?? int b){return a > x;});//x????????
????int x = 0??y = 1;
????auto g = [&](int x){return ++y;});//y???????????????g??????y????????y????????
????bool(*fp)(int?? int) = [](int a?? int b){return a > b;});//?????????????????????
????Lambda?????????????á?
?????????????ISO C++14?????????????????lambda?????????????????????????д??
????sort(a?? a + n?? [](const auto &a?? const auto &b){return a > b;});//??????????????a??b?????????
???????????????????????????????????????????????????????????????????????????auto???????????????????????????????д????????????????????????????????????????????????????????????
?????????????????Lambda???????????
#include<iostream>
#include<algorithm>
#include<vector>
#include<ostream>
using namespace std;
int main()
{
vector<int> v;
for (int i = 0; i < 10; i++){
v.push_back(i);
}
for_each(v.begin()?? v.end()?? [](int n){cout << n << " "; });
cout << endl;
return 0;
}