gpt4 book ai didi

C++11 lambda 表达式

转载 作者:太空宇宙 更新时间:2023-11-04 15:23:15 25 4
gpt4 key购买 nike

今天我在做一些关于 c++11 的补习(因为我们还没有继续)。正如很多人所说,切换的原因之一似乎是 lambda 表达式。我仍然不确定他们如何提供新的东西。

例如使用c++11:

#include <iostream>

int main()
{
auto func = [] () { std::cout << "Hello world" << std::endl; };

func();
}

似乎非常类似于:

#include <iostream>

#define FUNC( )\
do { std::cout << "Hello world" << std::endl; } while(0)


int main()
{
FUNC();
}

lambda 表达式能为我提供哪些我目前无法做到的?

最佳答案

http://msdn.microsoft.com/en-us/library/vstudio/dd293608.aspx非常详细地总结了关于该主题的要点和更多内容。以下是重要摘录:

A lambda combines the benefits of function pointers and function objects and avoids their disadvantages. Like a function objects, a lambda is flexible and can maintain state, but unlike a function object, its compact syntax doesn't require a class definition. By using lambdas, you can write code that's less cumbersome and less prone to errors than the code for an equivalent function object.

网站上有示例显示更多差异和比较。

另外...传统观点是从不在 C++ 中使用宏:

http://scienceblogs.com/goodmath/2007/12/17/macros-why-theyre-evil/

关于C++11 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14461581/

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