一、lambda表示式
iso c++ 11 標準的一大亮點是引入lambda
表示式
列子:[capture list] (parameter list)->return type
注釋:capture list 捕獲列表
可以為空;
[=] 定義在表示式{}外的變數,在表示式{}中為唯讀變數,不能對其進行修改。
[&] 定義在表示式{}外的變數,在表示式{}中為可讀可修改變數。
更加靈活的用法,訪問{}外的變數
[=,&a,&b] 表示{}外部變數 a、b 的值可以被修改,其餘{}外部變數不能被修改;
[&,a,b] 表示除了{}外部變數 a、b 的值不能被修改,其餘{}外部變數可以被修改;
parameter list 匿名函式的引數列表
return type 匿名函式的返回值型別
function body 函式體
int a[4]
=;int t =
0, x=
10,y=
20,z=30;
sort
(a, a+4,
[=](
int x,
int y)
->
bool);
// 公升序排序
for_each
(a, a+4,
[&](
int x));
cout << t << endl;
auto f =[=
,&y,
&z](
int n)
->
int;
cout <<
f(x)
<< endl;
cout << y << endl;
cout << z << endl;
auto f1 =[&
,y,z]()
; cout <)<< endl;
cout << y << endl;
cout << z << endl;
int(
*fp)
(int)=
(int a)
;//不捕獲時才可轉換為函式指標
cout <<
(*fp)
(100
)<< endl;
4 6 匿名函式 Lambda表示式
4.6 匿名函式 lambda表示式 lambda函式是一種快速定義單行的最小函式,是從lisp借用來的,可以用在任何需要函式的地方。無須定義函式名稱 寫法舉例 g lambda x,y,z.x y lambda 構造的是乙個函式物件 example4.6.1 g lambda x,y x y g ...
C C 匿名函式 Lambda 表示式
基本的lambda函式 我們可以這樣定義乙個lambda函式 include using namespace std int main func now call the function 其中func就是乙個lambda函式。我們使用auto來自動獲取func的型別,這個非常重要。定義好lambd...
Lambda 表示式 即匿名函式
拉姆達值 lambda 希臘字母表示為 指與真空的空間有關的能量或暗能量。代表轉換的常量 或者轉換本身。lambda 表示式 lambda 表示式 是乙個 匿名函式,可以包含表示式和語句,並且可用於建立委託或表示式目錄樹型別。所有 lambda 表示式都使用 lambda 運算子 該運算子讀為 go...