C 11新特性 lambda表示式

2021-09-05 23:34:07 字數 570 閱讀 9405

在c++11以後,形如這樣的語法。

[capture]

(parameters)mutable ->return-type

稱為乙個lambda表示式,表達乙個匿名函式。從程式設計的角度上看,lambda是一種函式式程式設計。

分析語法:

1.capture,可以通過值傳遞或者引用傳遞的方式給匿名函式提供訪問父作用域上下文的變數。特殊的兩種情況:[=]和[&]分別表示,以值傳遞的形式捕捉所有父作用域的變數和以引用傳遞的形式捕捉所有父作用域的變數。

2.()引數列表形如一般的函式的引數列表。沒有引數時可以忽略不寫。

3.可選擇項,mutable,->return type,分別表示去除匿名函式的常量性,->return type是匿名函式的返回值型別,可以忽略由編譯器自動推導。新增可選項必須在此之前增加()。

4.函式本體。

#include #include int main();//最簡單的表達方式

int a=2,b=2;

[=]()->int;

[a]()

void operato()()進行運算。

c 11 新特性 lambda表示式

iso c 11 標準的一大亮點是引入lambda表示式。基本語法如下 capture list parameter list return type 其中除了 其中捕獲列表可以為空 和 復合語句 相當於具名函式定義的函式體 其它都是可選的。它的型別是唯一的具有成員operator 的非聯合的類型別...

C 11新特性 lambda表示式

為何要寫一篇博文呢?其實,系統學了c 一定會學到lambda表示式。不巧不巧,在秋招的浪潮中,我又被問到了關於lambda表示式,回過頭想一想,其實lambda表示式在c 中應用挺廣泛的。匿名函式,短小精悍,應該就是它的feature。好記性不如爛筆頭,書上有路勤為徑。可呼叫物件 對於任何乙個物件或...

C 11 新特性之Lambda表示式

一 lambda表示式 c 11中的 lambda 表示式用於定義並建立匿名的函式物件,以簡化程式設計工作。lambda 的語法形式如下 函式物件引數 操作符過載函式引數 mutable 或exception 宣告 返回值型別 可以看到,lambda主要分為五個部分 函式物件引數 操作符過載函式引數...