【发布时间】:2016-10-23 14:01:49
【问题描述】:
我对这个功能非常陌生,我只是在阅读 C++ 中的 Lambda 表达式,并尝试在一个简单的程序中实现它。
int main()
{
std::string name;
int a = 5;
std::cout << "What is your name? ";
getline (std::cin, name);
for([&](){a = 7;};a > 0; a--)
{
std::cout << "Hello, " << name << "!\n";
}
}
但它没有像我想象的那样工作..
我的假设:[&](){a = 7;} 这会将变量 a 的值从 5 更改为 7 但不是..
代码有什么问题吗??还是只是我的假设不正确?
【问题讨论】:
-
您创建了 lambda 并将其丢弃。您需要调用 () 运算符来运行它。
-
@RaymondChen 明白了.. 解决了这个问题.. 谢谢.. :)