C++风格_Lambda表达式
来源:互联网 发布:北京pk10网络关注平台 编辑:程序博客网 时间:2024/06/17 21:23
尽量避免使用 lambda 表达式。如果使用别用默认 lambda 捕获,所有捕获都要显式写出来。
定义:
Lambda 表达式是创建匿名函数对象的一种简易途径,常用于把函数当参数传,例如:
std::sort(v.begin(), v.end(), [](int x, int y) {return Weight(x) < Weight(y);});
C++11 首次提出 Lambdas, 还提供了一系列处理函数对象的工具,比如多态包装器(polymorphic wrapper) std::function.
优点:
- 传函数对象给 STL 算法,Lambdas 最简易,可读性也好。
- Lambdas, std::functions 和 std::bind 可以搭配成通用回调机制(general purpose callback mechanism);写接收有界函数为参数的函数也很容易了。
缺点:
- Lambdas 的变量捕获略旁门左道,可能会造成悬空指针。
- Lambdas 可能会失控;层层嵌套的匿名函数难以阅读。
结论:
- 按 format 小用 lambda 表达式怡情。
- 禁用默认捕获,捕获都要显式写出来。打比方,比起 [=](int x) {return x + n;}, 您该写成 [n](int x) {return x + n;} 才对,这样读者也好一眼看出 n 是被捕获的值。
- 匿名函数始终要简短,如果函数体超过了五行,那么还不如起名(acgtyrant 注:即把 lambda 表达式赋值给对象),或改用函数。
- 如果可读性更好,就显式写出 lambd 的尾置返回类型,就像auto.
阅读全文
1 0
- C++风格_Lambda表达式
- 学习kotlin第12天_lambda表达式
- JDK8的随笔(02)_Lambda表达式进一步探讨
- JDK8的随笔(04)_Lambda表达式扩展之Method References
- JDK8的随笔(01)_Lambda表达式是个神马东东,初尝禁果
- JDK8的随笔(03)_Lambda表达式的变量使用范围讨论
- POSIX风格正则表达式
- Ant 风格路径表达式
- 正则表达式(Perl风格)
- Ant 风格路径表达式
- Ant 风格路径表达式
- POSIX风格正则表达式
- Ant 风格路径表达式
- Ant 风格路径表达式
- Ant 风格路径表达式
- C风格字符串[C++]
- php perl风格 正则表达式
- C语言编程风格
- 搭建FastDFS,Nginx,fastdfs-nginx-module图片资源服务器
- 实验二 链表的基本操作
- 搬走了
- ImageLoader的缓存+PopupWindow的一些使用
- ShoppingCart
- C++风格_Lambda表达式
- 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。 例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方
- mapreduceword count实例
- hdu1195Open the Lock
- Java垃圾回收机制与典型的垃圾回收算法
- 1120. Friend Numbers (20)
- 剑指offer--删除链表中重复的结点
- HDU-1242-Rescue
- Python3.5学习笔记(1)-Python基础