在C++中,lambda函數可以使用捕獲列表來捕獲外部變量,并且可以修改這些變量。捕獲列表通過方括號([])來指定,其中包含要捕獲的變量。要在lambda函數中修改捕獲的變量,需要使用mutable
關鍵字。
以下是一個簡單的示例,演示了如何在C++ lambda函數中捕獲并修改捕獲的變量:
#include <iostream>
int main() {
int x = 10;
// Lambda function captures x by reference and modifies its value
auto lambda = [&x]() mutable {
x *= 2;
};
lambda(); // Call lambda function
std::cout << "Modified value of x: " << x << std::endl;
return 0;
}
在上面的示例中,lambda函數通過引用捕獲了變量x
,并使用mutable
關鍵字使得變量x
可以在lambda函數中修改。在lambda函數中,我們將x
的值乘以2。最后輸出修改后的x
的值。
運行上面的代碼將輸出:
Modified value of x: 20
這表明lambda函數成功地捕獲并修改了變量x
的值。