C++11 Lambda函式(匿名函式)
阿新 • • 發佈:2019-02-18
C++11引入了lambda表示式,使得程式設計師可以定義匿名函式,該函式是一次性執行的,既方便了程式設計,又能防止別人的訪問。
Lambda表示式的語法通過下圖來介紹:
- Lambda表示式的引入標誌,在‘[]’裡面可以填入‘=’或‘&’表示該lambda表示式“捕獲”(lambda表示式在一定的scope可以訪問的資料)的資料時以什麼方式捕獲的,‘&’表示一引用的方式;‘=’表明以值傳遞的方式捕獲,除非專門指出。
- Lambda表示式的引數列表
- Mutable 標識
- 異常標識
- 返回值
- “函式”體,也就是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; }