C++ 中的Lambda 表示式
C++ STL 包含諸如 std::for_each 等有用的通用函式。不幸的是,它們也可能很繁瑣,特別是在你想應用的函式符對特定函式來說是唯一的。因此,你將建立的這個函式將位於該名稱空間中,僅用於在一個地方。 解決方法是使用匿名函式。
C++ 在 C++11 中引入了 lambda 表示式,允許建立匿名函式。例如,
示例
#include<iostream>
#include<vector>
#include <algorithm> // for_each
using namespace std;
int main() {
vector<int> myvector;
myvector.push_back(1);
myvector.push_back(2);
myvector.push_back(3);
for_each(myvector.begin(), myvector.end(), [](int x) {
cout << x*x << endl;
});
}輸出
1 4 9
(int x)用於定義 lambda 表示式將被呼叫的引數。 [] 用於將變數從區域性作用域傳遞到 lambda 的內部作用域,這稱為捕獲變數。如果這些表示式很簡單,可以自動推斷它們的型別。你還可以使用以下語法顯式提供型別資訊
[](int x) -> double {
return x/2.0;
}
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP