从vs2010开始C++已经开始支持lambda表达式:
C++lambda表达式(vs2010)
原创
©著作权归作者所有:来自51CTO博客作者ericsunny的原创作品,请联系作者获取转载授权,否则将追究法律责任
eg:
vector<int> v;
for( int i = 0; i < 10; ++i)
{
v.push_back(i);
}
foreach(v.begin(), v.end(); [](int n){cout<<n<<endl;}
1、[]是lambda的前导符,它通知编译器其后引导的是一个lambda表达式。lambda表达式的工作就是定义匿名函数类并构造其对象,而后调用其括号算符重载函数;
2、[&] 和 [=]分别表示引用所有可以引用的变量和使用所有可以使用的值;
3、当lambda想返回值的时候需要使用 return-type的形式, auto fun = [&](int n)->{return n;};
eg:
int n = 0;
auto fun = [=]()multable{ n= 1; };
fun(); // 调用执行后 n == 0
multable 类似于函数的参数传值,此关键字主要用于标识lambda表达式采用的是至传递的方式,在表达式语句块内对变量进行修改不会影响语句块外部的变量值;
上一篇:MFC标题和菜单操作
下一篇:HTTP mime 定义
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C++Lambda表达式
Lambda表达式的完整声明格式如下:[capture list] (p
函数体 值类型 this指针 -
(转载)C++lambda表达式lambda表达式 迭代器 #include
-
C# Lambda表达式详解,及Lambda表达式树的创建
每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板
lambda表达式 匿名方法 c# 运算符 初始化