C++11 中的 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;
}若要詳細瞭解 C++ lambda,請訪問 StackOverflow 主題 − https://stackoverflow.com/questions/7627098/what-is-a-lambda-expression-in-c11
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP