C lambda函式總結

2021-10-05 21:26:26 字數 680 閱讀 3920

c11新增加的特性,不過現在都c20了不新了。

[捕捉列表](引數) 屬性 -> 返回值型別
引出符:因為lambda無法直接使用區域性變數,所以需要對變數進行捕捉,也就是需要通過捕捉列表通知c++這些變數我要拿來用。包含幾種不同的形式: 形式

作用[x]

表示以值傳遞的方式獲得變數x

[=]表示以值傳遞的方式獲取所有父作用域中的變數

[&x]

表示以引用的方式獲取變數x

[&]表示以引用的方式獲得所用父作用域中的變數

[this]

表示以值傳遞的方式獲得當前的this指標,如果實在類中可以通過this獲得與類物件同樣的訪問許可權,使用=和&的時候預設新增

[=,&x]

還可以通過組合的方式進行特定的提取

注意,捕捉列表不能對變數進行重複的捕捉。

引數:因為lambda函式相當於是乙個區域性的函式,如果不需要傳入引數可以省略。

屬性:lambda預設是const,通過mutable將lambda變為可變的,但只能修改值傳遞變數。

->:如何沒有返回值或者希望編譯器自動推測型別,則可以省略。

函式體:函式都有,正常寫就好。

使用lambda函式的時候一般直接使用auto作為匿名型別。

lambda想要顯式轉化成函式指標的時候不能有捕捉列表。

C lambda 和 函式物件

include include include include include include using namespace std intadd const int a,const int b intsub const int a,const int b struct mulitiply int...

C lambda 函式物件 函式指標(函式名)

stl演算法中通常會傳入乙個謂詞來實現自定義的排序,查詢數值等行為。lambda 函式物件 函式指標 函式名 均可以在這個情境中傳遞資訊。在這種情境下對比一下三者的使用 1.傳入函式指標 函式名 例如,count if 函式的第三個引數是乙個一元謂詞。若判數乙個數能否被3整除,則定義函式 bool ...

c Lambda 函式形式及用法

宣告 本文參考了 和 lambda函式又稱lambda函式和匿名函式,是c 11新加入的乙個十分強大的特性。在程式設計中經常可以用到。我們可以這樣定義乙個lambda函式 include int main 省略函式型別 auto f2 int 函式型別後置 其中f1即可呼叫或者作為引數被傳入 類似於...