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