日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++11标准:匿名函数(匿名表达式)lambda

發(fā)布時間:2023/12/20 c/c++ 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++11标准:匿名函数(匿名表达式)lambda 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

lambda:

  C++11提供了對匿名函數(shù)的支持,稱為Lambda函數(shù)(也叫Lambda表達(dá)式). Lambda表達(dá)式具體形式如下:

    匿名函數(shù)定義/匿名表達(dá)式聲明:[capture](parameters)->return-type{body}

    函數(shù)調(diào)用:function a =?[capture](parameters)->return-type{body};

         a(parameters);

?

  parameters:形參

    和函數(shù)一樣

    如果沒有參數(shù),空的圓括號()可以省略.

    返回值也可以省略,如果函數(shù)體只由一條return語句組成或返回類型為void的話.形如:

      ?[capture](parameters){body}

      返回值類型可以通過以下算法推演出來

      •   如果 lambda 代碼塊中包含了 return 語句,則該 lambda 表達(dá)式的返回類型由 return 語句的返回類型確定。
      •   如果沒有 return 語句,則類似 void f(...) 函數(shù)。

    例如:

[](int x, int y) { return x + y; } // 隱式返回類型 [](int& x) { ++x; } // 沒有return語句 -> lambda 函數(shù)的返回類型是'void' []() { ++global_x; } // 沒有參數(shù),僅訪問某個全局變量 []{ ++global_x; } // 與上一個相同,省略了()

  []:外部閉包

    Lambda函數(shù)可以引用在它之外聲明的變量. 這些變量的集合叫做一個閉包.??閉包被定義在Lambda表達(dá)式聲明中的方括號[]內(nèi).

    閉包可以按值、引用捕獲:

    例如:  

[] //未定義變量.試圖在Lambda內(nèi)使用任何外部變量都是錯誤的. [x, &y] //x 按值捕獲, y 按引用捕獲. [&] //用到的任何外部變量都隱式按引用捕獲 [=] //用到的任何外部變量都隱式按值捕獲 [&, x] //x顯式地按值捕獲. 其它變量按引用捕獲 [=, &z] //z按引用捕獲. 其它變量按值捕獲

    對this的捕獲:只可以是值捕獲,

      在類成員中的lamda函數(shù):

      對protect和priviate成員來說, 這個lambda函數(shù)與創(chuàng)建它的成員函數(shù)有相同的訪問控制.

      訪問this的成員不必使用this->語法,可以直接訪問.

    注意:如果一個閉包含有局部變量(類和局部)的引用,在超出創(chuàng)建它的作用域之外的地方被調(diào)用的話,這種行為是未定義的!

?

?

lambda函數(shù)是一個依賴于實現(xiàn)的函數(shù)對象類型,這個類型的名字只有編譯器知道.

如果用戶想把lambda函數(shù)做為一個參數(shù)來傳遞, 那么形參的類型必須是模板類型或者必須能創(chuàng)建一個std::function類似的對象去捕獲lambda函數(shù).

使用 auto關(guān)鍵字可以幫助存儲lambda函數(shù), ?

?

轉(zhuǎn)載于:https://www.cnblogs.com/yiii/p/5139130.html

總結(jié)

以上是生活随笔為你收集整理的c++11标准:匿名函数(匿名表达式)lambda的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。