91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
怀仁县| 离岛区| 泗水县| 万山特区| 绥德县| 得荣县| 安泽县| 乡城县| 上林县| 英吉沙县| 漳州市| 开鲁县| 浪卡子县| 松溪县| 轮台县| 将乐县| 梧州市| 格尔木市| 页游| 彰武县| 温州市| 星子县| 沅陵县| 光山县| 宝丰县| 河南省| 锡林郭勒盟| 蒲城县| 甘德县| 石城县| 新巴尔虎左旗| 嘉兴市| 乌兰浩特市| 恭城| 仪陇县| 大田县| 井研县| 乐平市| 龙里县| 黔西| 辽源市|