1. 程式人生 > >C++11 Lambda函式(匿名函式)

C++11 Lambda函式(匿名函式)

 C++11引入了lambda表示式,使得程式設計師可以定義匿名函式,該函式是一次性執行的,既方便了程式設計,又能防止別人的訪問。

Lambda表示式的語法通過下圖來介紹:

圖片

  1. Lambda表示式的引入標誌,在‘[]’裡面可以填入‘=’或‘&’表示該lambda表示式“捕獲”(lambda表示式在一定的scope可以訪問的資料)的資料時以什麼方式捕獲的,‘&’表示一引用的方式;‘=’表明以值傳遞的方式捕獲,除非專門指出。
  2. Lambda表示式的引數列表
  3. Mutable 標識
  4. 異常標識
  5. 返回值
  6. “函式”體,也就是lambda表示式需要進行的實際操作   

// lambda.cpp : 定義控制檯應用程式的入口點。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{

int x = 10,
y = 3,
z;

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

cout << z << endl;
cout << "x:" << x << "\t" << "y:" << y << endl;

return 0;
}