C++学习笔记
来源:互联网 发布:剑灵捏人女神数据图片 编辑:程序博客网 时间:2024/05/17 22:41
lambda表达式
lambda表达式有如下优点:
1).声明式编程风格:就地匿名定义目标函数或函数对象,不需要额外写一个命名函数或者函数对象。以更直接的方式去写程序,好的可读性和可维护性。
2).简洁:不需要额外再写一个函数或者函数对象,避免了代码膨胀和功能分散,让开发者更加集中精力在手边的问题,同时也获取了更高的生产率。
3).在需要的时间和地点实现功能闭包,使程序更灵活。
lambda表达式的语法归纳如下:
[ caputrue ] ( params ) opt -> ret { body; };
1).capture是捕获列表;
2).params是参数表;(选填)
3).opt是函数选项;可以填mutable,exception,attribute(选填)
mutable说明lambda表达式体内的代码可以修改被捕获的变量,并且可以访问被捕获的对象的non-const方法。
exception说明lambda表达式是否抛出异常以及何种异常。
attribute用来声明属性。
4).ret是返回值类型。(选填)
5).body是函数体。
捕获列表:lambda表达式的捕获列表精细控制了lambda表达式能够访问的外部变量,以及如何访问这些变量。
1).[]不捕获任何变量。
2).[&]捕获外部作用域中所有变量,并作为引用在函数体中使用(按引用捕获)。
3).[=]捕获外部作用域中所有变量,并作为副本在函数体中使用(按值捕获)。
4).[=,&foo]按值捕获外部作用域中所有变量,并按引用捕获foo变量。
5).[bar]按值捕获bar变量,同时不捕获其他变量。
6).[this]捕获当前类中的this指针,让lambda表达式拥有和当前类成员函数同样的访问权限。如果已经使用了&或者=,就默认添加此选项。捕获this的目的是可以在lamda中使用当前类的成员函数和成员变量。
- C++/C学习笔记
- 【C/C++】STL学习笔记
- C/C学习笔记/导言
- C/C学习笔记/结构
- 【c/c++】学习笔记1
- C学习笔记1
- TPC-C学习笔记
- c语言学习笔记
- C语言学习笔记
- C语言学习笔记
- 学习笔记之c
- C#-学习笔记
- Objective-C学习笔记
- C++PRIMER学习笔记
- C学习笔记
- C 学习笔记
- C/C++学习笔记
- 1.C学习笔记
- 微信二次开发 之 XML格式数据解析
- 国密算法
- jquery获取焦点事件
- 10大主流压力测试工具推荐
- 多行文本省略/单行文本
- C++学习笔记
- 微信公众平台开发1
- Java多线程学习
- 20171207编写一个程序,只接受正整数的输入,然后显示所有小于或等于该数的素数。
- 深度学习(Deep Learning)入门
- java.toString() 和 (String) 以及 String.valueOf() 的区别
- Python 小技巧:巧用 range 函数批量生成索引值
- WebView调用微信H5支付
- Java并发编程学习(一)——标准Thread