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