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