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

溫馨提示×

C++ lambda捕獲是怎么工作的

c++
小樊
82
2024-07-05 18:51:29
欄目: 編程語言

在C++中,lambda表達式可以通過捕獲列表來捕獲外部變量。捕獲列表指定了lambda表達式可以訪問的外部變量,可以是按值捕獲或按引用捕獲。

按值捕獲會在lambda表達式創建時將外部變量的副本保存在lambda內部,而按引用捕獲則通過引用直接訪問外部變量。按值捕獲可以保證lambda表達式在之后訪問的變量值不會被修改,而按引用捕獲則可以更改外部變量的值。

捕獲列表可以通過以下方式來指定:

  • [ ]:空捕獲列表,不捕獲任何外部變量。
  • [var]:按值捕獲變量var。
  • [&var]:按引用捕獲變量var。
  • [=]:按值捕獲所有外部變量。
  • [&]:按引用捕獲所有外部變量。

示例:

int main() {
    int x = 10;
    int y = 20;

    // 按值捕獲x,按引用捕獲y
    auto lambda = [x, &y]() {
        std::cout << "x = " << x << ", y = " << y << std::endl;
    };

    x = 30;
    y = 40;

    lambda(); // 輸出 x = 10, y = 40

    return 0;
}

在上面的示例中,變量x按值捕獲,lambda表達式創建時保存了變量x的副本。而變量y按引用捕獲,lambda表達式直接訪問外部變量y。

0
祁连县| 华蓥市| 嘉祥县| 阳谷县| 皋兰县| 龙门县| 长春市| 卢氏县| 开江县| 红桥区| 寻乌县| 会东县| 江永县| 巫溪县| 衡东县| 饶平县| 尤溪县| 淮安市| 丹东市| 琼中| 平舆县| 来安县| 西和县| 景东| 道孚县| 青阳县| 丹凤县| 会昌县| 南和县| 宁陵县| 昌都县| 乌兰察布市| 五指山市| 宁安市| 京山县| 凤翔县| 偃师市| 留坝县| 科尔| 梅河口市| 固始县|