首頁 >後端開發 >C++ >C++ 函數中的 lambda 表達式如何透過參數傳遞捕捉外部變數?

C++ 函數中的 lambda 表達式如何透過參數傳遞捕捉外部變數?

王林
王林原創
2024-04-25 16:15:011029瀏覽

C lambda 表達式可以透過參數傳遞來捕獲外部變量,具體步驟如下:定義一個接受 lambda 表達式作為參數的函數。在 lambda 表達式中捕捉外部變數。將 lambda 表達式作為參數傳遞給該函數。在函數中呼叫 lambda 表達式,存取捕獲的外部變數。

C++ 函数中的 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn