首頁> 後端開發> C++> 主體

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

王林
發布: 2024-04-25 16:15:01
原創
937 人瀏覽過

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

C++ 函数中的 lambda 表达式如何通过参数传递捕获外部变量?

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

Lambda 表達式是一種在C 中定義匿名函數的簡單方法。它們可以捕獲外部變量,從而可以在函數範圍內存取這些變數。當需要將 lambda 表達式作為參數傳遞給其他函數時,可以透過參數傳遞來捕獲外部變數。

以下步驟展示如何透過參數傳遞來擷取外部變數:

#include  using namespace std; // 外部变量 int global_var = 10; // 接受 lambda 表达式作为参数的函数 void print_captured_var(function 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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!