C lambda 表達式可以透過參數傳遞來捕獲外部變量,具體步驟如下:定義一個接受 lambda 表達式作為參數的函數。在 lambda 表達式中捕捉外部變數。將 lambda 表達式作為參數傳遞給該函數。在函數中呼叫 lambda 表達式,存取捕獲的外部變數。
C 函數中的Lambda 表達式如何透過參數傳遞捕捉外部變數
Lambda 表達式是一種在C 中定義匿名函數的簡單方法。它們可以捕獲外部變量,從而可以在函數範圍內存取這些變數。當需要將 lambda 表達式作為參數傳遞給其他函數時,可以透過參數傳遞來捕獲外部變數。
以下步驟展示如何透過參數傳遞來擷取外部變數:
#include <iostream> using namespace std; // 外部变量 int global_var = 10; // 接受 lambda 表达式作为参数的函数 void print_captured_var(function<void(int)> lambda) { // 在 lambda 表达式中访问捕获的外部变量 lambda(global_var); } int main() { // 定义 lambda 表达式,捕获外部变量 global_var auto lambda = [](int x) { cout << "捕获的变量:" << x << endl; }; // 将 lambda 表达式作为参数传递给 print_captured_var 函数 print_captured_var(lambda); return 0; }
#輸出:
捕获的变量:10
在這個範例中:
global_var
是一個外部int 變量,其值初始化為10。 print_captured_var
函數接受一個函數物件 lambda
作為參數,它將呼叫該函數物件並傳遞一個捕獲的外部變數的值作為實參。 lambda
函數是一個 lambda 表達式,它會擷取外部變數 global_var
。在 lambda 表達式中,外部變數的值被印到標準輸出。 main
函數將 lambda 表達式作為參數傳遞給 print_captured_var
函數,然後呼叫函數。 print_captured_var
函數在 lambda 表達式中列印捕獲的外部變數的值,得到輸出 "捕獲的變數:10"。 以上是C++ 函數中的 lambda 表達式如何透過參數傳遞捕捉外部變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!