天天看點

使用C++11裡面的Lambda表達式,來取代仿函數

聖人告訴我們,用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表達式,來取代仿函數,太爽了!