亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++ lambda捕獲和引用捕獲區別

c++
小樊
92
2024-07-05 18:54:24
欄目: 編程語言

在C++中,lambda函數可以通過捕獲列表來捕獲外部變量。有兩種捕獲方式:值捕獲和引用捕獲。

  1. 值捕獲:當使用值捕獲時,lambda函數會將外部變量的值拷貝到lambda函數內部,這樣lambda函數就可以在其生命周期內訪問這個值,而不受外部變量的改變影響。
int x = 10;
auto lambda = [x](){
    std::cout << x << std::endl;
};
x = 20;
lambda(); // 輸出10
  1. 引用捕獲:當使用引用捕獲時,lambda函數會直接引用外部變量,在lambda函數的生命周期內,外部變量的改變會影響lambda函數內部對該變量的訪問。
int x = 10;
auto lambda = [&x](){
    std::cout << x << std::endl;
};
x = 20;
lambda(); // 輸出20

因此,值捕獲會在lambda函數內部創建一個變量的拷貝,而引用捕獲會直接引用外部變量。選擇捕獲方式取決于具體需求,需要注意避免引用捕獲時外部變量被銷毀導致懸空指針的問題。

0
浦县| 德惠市| 满城县| 龙山县| 曲靖市| 南华县| 勐海县| 武平县| 库伦旗| 金川县| 安泽县| 德格县| 出国| 镇江市| 四川省| 垦利县| 桃园县| 盐城市| 安多县| 隆化县| 繁峙县| 永新县| 洪雅县| 宜州市| 福贡县| 南华县| 潞西市| 白朗县| 怀集县| 垫江县| 神农架林区| 蒲城县| 南川市| 南靖县| 通道| 松潘县| 乌兰浩特市| 谷城县| 建平县| 景洪市| 图片|