在C++中,可以使用lambda函数来传递同名的局部变量和参数。使用此关键字,可以通过捕获列表来引用或复制同名的局部变量和参数。
下面是一个示例:
#include <iostream>
int main() {
int x = 5;
int y = 10;
auto lambda = [x, &y](int z) {
// 在lambda函数中可以使用同名的局部变量和参数
std::cout << "x: " << x << std::endl; // 输出局部变量x的值
std::cout << "y: " << y << std::endl; // 输出引用变量y的值
std::cout << "z: " << z << std::endl; // 输出参数z的值
};
lambda(15);
return 0;
}
在上面的示例中,使用[x, &y]
作为捕获列表来传递同名的局部变量和参数。x
通过值传递方式,复制了当前的局部变量x
的值,y
通过引用传递方式,引用了当前的局部变量y
。
在lambda函数中,可以直接使用x
来访问复制得到的值,使用y
来访问引用的变量。当调用lambda函数时,将传递一个参数z
,可以在函数体内使用该参数。
以上代码的输出将是:
x: 5
y: 10
z: 15
关于lambda函数的更多信息,可以参考腾讯云的C++云函数(SCF)产品:C++云函数(SCF)。
领取专属 10元无门槛券
手把手带您无忧上云