C++11新特性之lambda表达式
生活随笔
收集整理的這篇文章主要介紹了
C++11新特性之lambda表达式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
lambda表達式的特性
- Lambda 表達式用于定義并創建匿名的函數對象,用于替代簡單的函數。
lambda表達式的示例代碼
- lambda表達式的格式為 [ capture ] ( params ) opt -> ret { body; };其中
carpture是捕獲列表,描述了lambda表達式可以訪問上下文中的哪些變量。
params是參數列表,表示lambda表達式的參數。
opt是選項,例如mutable,默認情況下,lambda函數是一個const函數,而mutable可以取消常量性,被 mutable 修飾的 lambda 表達式就算沒有參數也要寫明參數列表。
ret則是返回值的類型。
body則是函數的具體實現。 - 例如 [](int x) {return x%5==0;} 表示一個判斷x是否能整除的lambda表達式。
- 例如[](double x )->double{int y = x ;return x - y;}; 返回double類型的返回值。
lambda表達式的相關問題
Q:lambda表達式與宏函數的區別
A:lambda表達式只用于單個函數中,能夠一定程度上降低代碼耦合,其更為嚴格的語法要求相比于宏函數有更高的安全性。而宏函數可以被多個函數調用,且宏函數不需要進行參數檢查。
總結
以上是生活随笔為你收集整理的C++11新特性之lambda表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++11新特性之智能指针
- 下一篇: C++ STL中的Hashmap