Lambda表達(dá)式是C++11引入的一種新的語法特性,具有以下特點(diǎn):
- Lambda表達(dá)式可以在函數(shù)內(nèi)部定義匿名函數(shù),無需定義函數(shù)名稱。
- Lambda表達(dá)式可以捕獲其所在作用域內(nèi)的變量,包括傳值捕獲和引用捕獲。
- Lambda表達(dá)式可以以傳值方式或引用方式傳遞給函數(shù)或算法。
- Lambda表達(dá)式可以作為函數(shù)對象傳遞給STL算法,可以作為謂詞傳遞給標(biāo)準(zhǔn)庫中的算法。
- Lambda表達(dá)式可以有返回值,可以有參數(shù)列表。
- Lambda表達(dá)式可以使用auto關(guān)鍵字進(jìn)行參數(shù)類型推導(dǎo)。
- Lambda表達(dá)式可以省略參數(shù)列表和返回值類型,由編譯器進(jìn)行推導(dǎo)。
- Lambda表達(dá)式可以使用捕獲列表來顯式指定需要捕獲的變量。
- Lambda表達(dá)式可以在其內(nèi)部定義局部變量和使用控制流語句。
- Lambda表達(dá)式的語法簡潔,可以方便地在需要使用函數(shù)對象的地方替代傳統(tǒng)的函數(shù)對象定義方式。