lambda表達式

標識一個 Lambda 表達式的開始悲酷,這部分必須存在,不能省略亲善。函數(shù)對象參數(shù)是傳遞給編譯器自動生成的函數(shù)對象類的構造
函數(shù)的设易。函數(shù)對象參數(shù)只能使用那些到定義 Lambda 為止時 Lambda 所在作用范圍內(nèi)可見的局部變量(包括 Lambda 所在類
的 this)。函數(shù)對象參數(shù)有以下形式:

空 沒有任何函數(shù)對象參數(shù)蛹头。
= 函數(shù)體內(nèi)可以使用 Lambda 所在范圍內(nèi)所有可見的局部變量(包括 Lambda 所在類的 this)顿肺,并且是值傳遞方式(相
當于編譯器自動為我們按值傳遞了所有局部變量)。
&渣蜗。函數(shù)體內(nèi)可以使用 Lambda 所在范圍內(nèi)所有可見的局部變量(包括 Lambda 所在類的 this)屠尊,并且是引用傳遞方式
(相當于是編譯器自動為我們按引用傳遞了所有局部變量)。
this耕拷。函數(shù)體內(nèi)可以使用 Lambda 所在類中的成員變量讼昆。
a。將 a 按值進行傳遞骚烧。按值進行傳遞時浸赫,函數(shù)體內(nèi)不能修改傳遞進來的 a 的拷貝闰围,因為默認情況下函數(shù)是 const 的,要
修改傳遞進來的拷貝既峡,可以添加 mutable 修飾符羡榴。
&a。將 a 按引用進行傳遞涧狮。
a炕矮,&b。將 a 按值傳遞者冤,b 按引用進行傳遞。
=档痪,&a涉枫,&b。除 a 和 b 按引用進行傳遞外腐螟,其他參數(shù)都按值進行傳遞愿汰。
&,a乐纸,b衬廷。除 a 和 b 按值進行傳遞外,其他參數(shù)都按引用進行傳遞汽绢。

[] (int x, int y) { return x + y; } // 隱式返回類型
[] (int& x) { ++x; } // 沒有 return 語句 -> Lambda 函數(shù)的返回類型是 'void'
[] () { ++global_x; } // 沒有參數(shù)吗跋,僅訪問某個全局變量
[] { ++global_x; } // 與上一個相同,省略了 (操作符重載函數(shù)參數(shù))
可以像下面這樣顯示指定返回類型:

[] (int x, int y) -> int { int z = x + y; return z; }

示例
std::vector<int> some_list;
int total = 0;
for (int i = 0; i < 5; ++i) some_list.push_back(i);
std::for_each(begin(some_list), end(some_list), [&total](int x)
{
total += x;
});
此例計算 list 中所有元素的總和宁昭。變量 total 被存為 Lambda 函數(shù)閉包的一部分跌宛。因為它是棧變量(局部變量)total 引
用,所以可以改變它的值积仗。
std::vector<int> some_list;
int total = 0;
int value = 5;
std::for_each(begin(some_list), end(some_list), [&, value, this](int x)
{
total += x * value * this->some_func();
});
此例中 total 會存為引用, value 則會存一份值拷貝疆拘。對 this 的捕獲比較特殊,它只能按值捕獲寂曹。this 只有當包含它的最靠近
它的函數(shù)不是靜態(tài)成員函數(shù)時才能被捕獲哎迄。對 protect 和 private 成員來說,這個 Lambda 函數(shù)與創(chuàng)建它的成員函數(shù)有相同
的訪問控制隆圆。如果 this 被捕獲了漱挚,不管是顯式還是隱式的,那么它的類的作用域對 Lambda 函數(shù)就是可見的匾灶。訪問 this 的
成員不必使用 this-> 語法棱烂,可以直接訪問。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阶女,一起剝皮案震驚了整個濱河市颊糜,隨后出現(xiàn)的幾起案子哩治,更是在濱河造成了極大的恐慌,老刑警劉巖衬鱼,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件业筏,死亡現(xiàn)場離奇詭異,居然都是意外死亡鸟赫,警方通過查閱死者的電腦和手機蒜胖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抛蚤,“玉大人台谢,你說我怎么就攤上這事∷昃” “怎么了朋沮?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長缀壤。 經(jīng)常有香客問我樊拓,道長,這世上最難降的妖魔是什么塘慕? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任树碱,我火速辦了婚禮沉颂,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己纬凤,他們只是感情好豪嚎,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布仁烹。 她就那樣靜靜地躺著候齿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞳筏。 梳的紋絲不亂的頭發(fā)上稚瘾,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音姚炕,去河邊找鬼摊欠。 笑死,一個胖子當著我的面吹牛柱宦,可吹牛的內(nèi)容都是我干的些椒。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼掸刊,長吁一口氣:“原來是場噩夢啊……” “哼免糕!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤石窑,失蹤者是張志新(化名)和其女友劉穎牌芋,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體松逊,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡躺屁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了经宏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片犀暑。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖烁兰,靈堂內(nèi)的尸體忽然破棺而出耐亏,到底是詐尸還是另有隱情,我是刑警寧澤沪斟,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布苹熏,位于F島的核電站,受9級特大地震影響币喧,放射性物質發(fā)生泄漏。R本人自食惡果不足惜袱耽,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一杀餐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧朱巨,春花似錦史翘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至洪唐,卻和暖如春钻蹬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凭需。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工问欠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人粒蜈。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓顺献,卻偏偏與公主長得像,于是被迫代替她去往敵國和親枯怖。 傳聞我的和親對象是個殘疾皇子注整,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容