是的,C++ lambda捕獲可以修改捕獲的值。 Lambda可以捕獲外部作用域的變量并修改它們的值,但默認情況下是以傳值的方式捕獲的,因此如果想要修改捕獲的值,需要使用引用捕獲。例如:
#include <iostream>
int main() {
int x = 10;
auto lambda = [&x]() {
x = 20;
};
lambda();
std::cout << x << std::endl; // 輸出 20
return 0;
}
在這個例子中,lambda捕獲了變量x的引用,并修改了它的值為20,因此在lambda執行后,x的值變為20。