gpt4 book ai didi

c++ - lambda 函数没有显示正确的结果

转载 作者:行者123 更新时间:2023-12-01 14:05:21 25 4
gpt4 key购买 nike

我想知道为什么这个 lambda 函数没有返回正确的答案:

int main()
{
int a = 3, b = 7;
[&]() ->void {(&a == &b) ? a : (a ^= b, b ^= a, a ^= b); };
std::cout << a << " " << b;
return 0;
}

它显示我 3 7 而不是 7 3

最佳答案

你没有调用 lambda。您刚刚声明了一个未命名的函数对象,该对象立即被丢弃。你可以称之为

[&]() ->void {(&a == &b) ? a : (a ^= b, b ^= a, a ^= b); } ();
// ^^

然后将评估函数体并执行您期望的操作。

LIVE

关于c++ - lambda 函数没有显示正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61999069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com