聖人告訴我們,用C++中盡可能使用for_each來疊代容器,但是為了使用for_each,我們不得不寫很多個 operator (...)
現在有了Lambda表達式:一切都變得和諧了!
看如下代碼
char str[]="Hello World!";
int uppercase = 0;
for_each(str, str+sizeof(str), [&uppercase] (char c)
{
if (isupper(c))
{
uppercase++;
}
});
cout<< uppercase<<" uppercase letters in: "<< str<<endl;
在VS2012編譯通過,使用Lambda表達式,來取代仿函數,太爽了!