c++ lambda表达式笔记
来源:互联网 发布:linux vi怎么保存 编辑:程序博客网 时间:2024/05/18 00:53
笔记内容归纳自c++ primer plus (version 6)
[](int x){ return x+1; }
如上图形式为一个lambda表达式,即一个匿名函数,可以很方便的定义在需要使用函数指针的地方(这种情况下,函数体和调用环境结合性强,提高了代码可读性)
有以下特点:
- 没有声明返回类型,返回类型是根据返回值自动推断的,若没有返回语句,推断出的返回类型为void。
- 当lambda表达式仅有一条返回语句时,自动推断生效,否则需要自行指定返回类型,如下:
[](int x)->int{int y = x; return y+1;}
- 可以为lambda表达式指定名字,如下:
auto func = [](int x){return x+1;}int b = func(1);
这样就和使用常规函数一致。
- lambda表达式可以访问作用域内的任何动态变量,通过在[ ]中添加说明来实现,如下:
int a=5;int b=7;[a](int x)->int{a+=x; return a;}/*仅仅按值访问,不修改外部a的值*/[a](int x)->int(a+=x; return a;}/*按引用访问变量,会修改外部a的值*/[&](int x)->int{return a+b;}/*表示可以按引用访问作用域内所有动态变量*/[=](int x)->int{return a+b;}/*表示可以按值访问作用域内所有动态变量*//*也可如下混合使用*/[&,a](int x)->int{return a+b;}/*表示按值访问a,并且按引用访问其他变量*/
0 0
- C sharp 泛型 lambda表达式学习笔记
- C++11 学习笔记 lambda表达式
- C++11 学习笔记 lambda表达式
- C++11 学习笔记 lambda表达式
- 【c/c++】Lambda表达式
- C#--Lambda表达式
- C#:Lambda 表达式
- C++lambda表达式
- C++lambda表达式
- C# Lambda表达式
- C++:lambda表达式
- C#Lambda表达式
- 【c++】lambda表达式
- C++lambda表达式简记
- c#lambda表达式复习
- [C++]Lambda表达式简介
- 【C#】理解Lambda表达式
- 【C++】Lambda表达式
- 字符串函数strlen
- ubuntu下 用mentohust代替锐捷认证上网
- window.open()参数传递及获取
- RAC环境下的备份与恢复(一)
- hdu1863 畅通工程 Kruskal 和 Prime求最小生成树
- c++ lambda表达式笔记
- 压缩感知测量矩阵详解
- 51Nod-1022-石子归并 V2
- 小笔记-用位运算实现求平均数的一个较高效方法
- Android练习-----计时器(Chronometer)
- UOJ 207 共价大爷游长沙
- JavaScript基础_03样式引入与结构语句
- ORA获取服务名
- 蓝桥杯 基础练习 十六进制转八进制