C++ lambda 表達式如何捕捉外部變數?
c++
lambda
在 C 中捕捉外部變數的 lambda 表達式有三種方法:按值擷取:建立變數副本。按引用擷取:獲得變數引用。同時按值和引用捕獲:允許捕獲多個變量,按值或按引用。
C lambda 表達式:捕獲外部變數
lambda 表達式是 C 中強大的工具,它允許我們在函數中定義匿名函數。有時,我們需要在 lambda 表達式中存取外部變數。本教程將介紹捕獲外部變數的幾種不同方法。
方法 1:按值捕獲
使用 [var]
語法,我們可以按值捕獲變數 var
。這意味著 lambda 表達式將建立該變數的副本。
auto var = 10; auto lambda = [var] { // 这里可以使用 var return var; };
登入後複製
方法 2:按引用捕獲
使用 [&var]
語法,我們可以按引用捕獲變數 var
#。這意味著 lambda 表達式將獲得對變數的引用。
auto var = 10; auto lambda = [&var] { // 这里可以使用 var 并修改它 var++; return var; };
登入後複製
方法 3:按值和引用捕獲
我們可以按值和引用同時捕獲多個變數。例如,以下lambda 表達式按值捕獲val
,按引用捕獲ref
:
auto func = [](int val, int& ref) { // val 是按值捕获的,ref 是按引用捕获的 };
登入後複製
實戰案例
以下範例展示如何使用按值和按引用捕獲外部變數:
#include <iostream> #include <vector> using namespace std; int main() { // 按值捕获 int num = 10; auto lambda1 = [num] { return num++; }; cout << lambda1() << endl; // 输出 10 // 按引用捕获 vector<int> myVector{1, 2, 3}; auto lambda2 = [&myVector] { myVector.push_back(4); }; lambda2(); for (auto& elem : myVector) { cout << elem << " "; // 输出 1 2 3 4 } cout << endl; return 0; }
登入後複製
以上是C++ lambda 表達式如何捕捉外部變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)