形式: [捕獲列表](參數(shù)列表)->返回值類型{函數(shù)體} 1. 最簡形式只有捕獲列表與函數(shù)[]{} 2. 當沒有返回值類型且函數(shù)僅僅只有return語句可以自動推導返回類型折汞,否則一律返回void 捕獲列表: 只能捕獲當前函數(shù)的非static變量荔烧,對不在該函數(shù)中的變量可以直接使用脑又,無需捕獲蠢络,且可修改 1. 值捕獲(默認方式)[var],在表達式創(chuàng)建時捕獲, 不可以在函數(shù)體中更改該變量值屋彪,默認只讀,如要修改均牢,在參數(shù)列表后加mutable涩禀,多個捕獲變量,用逗號進行隔開 2. 引用捕獲 [&val]咆繁,多個變量用逗號進行隔開 3. 隱式捕獲 [=]:全部以值的方式捕獲 [&]:全部以引用的方式進行捕獲 4. 隱式與顯示混合捕獲: [&, var]:引用隱式捕獲與值捕獲混合讳推,[=,&var]:值隱式捕獲與值捕獲相結合,“=玩般、&“符號必須放在最前面 代碼樣例 #include <bits/stdc++.h> using namespace std; int main(){ vector<int> num = {1,-1,-2}; for_each(num.begin(), num.end(), [](int& a){ a = a < 0 ? -a : a; }); for(auto value : num)cout<<value<<" "; cout<<endl; return 0; }