?????塢{??????}?????????????????????????????????????????
?????????????????????????????????????????????????????м???????????ο???

 

class CTest
{
public:
CTest() : m_nData(20) { NULL; }
void TestLambda()
{
vector<int> vctTemp;
vctTemp.push_back(1);
vctTemp.push_back(2);
// ???????????????????1 2
{
for_each(vctTemp.begin()?? vctTemp.end()?? [](int v){ cout << v << endl; });
}
// ?????????????????????п????????????????this?????????11 12
{
int a = 10;
for_each(vctTemp.begin()?? vctTemp.end()?? [=](int v){ cout << v+a << endl; });
}
// ?????÷?????????????????п????????????????this?????????11 13 12
{
int a = 10;
for_each(vctTemp.begin()?? vctTemp.end()?? [&](int v)mutable{ cout << v+a << endl; a++; });
cout << a << endl;
}
// ????????????????a???????11 13 10
{
int a = 10;
for_each(vctTemp.begin()?? vctTemp.end()?? [a](int v)mutable{ cout << v+a << endl; a++; });
cout << a << endl;
}
// ?????÷????????????a???????11 13 12
{
int a = 10;
for_each(vctTemp.begin()?? vctTemp.end()?? [&a](int v){ cout << v+a << endl; a++; });
cout << a << endl;
}
// ????this???????21 22
{
for_each(vctTemp.begin()?? vctTemp.end()?? [this](int v){ cout << v+m_nData << endl; });
}
// ??b??????????????????????????????11 12 17
{
int a = 10;
int b = 15;
for_each(vctTemp.begin()?? vctTemp.end()?? [=?? &b](int v){ cout << v+a << endl; b++; });
cout << b << endl;
}
// ????????????????????????????????2 3
{
for_each(vctTemp.begin()?? vctTemp.end()?? [](int &v){ v++; });
for_each(vctTemp.begin()?? vctTemp.end()?? [](int v){ cout << v << endl; });
}
// ???Lambda????
{
[](){}();
[]{}();
}
}
private:
int m_nData;
};