第18章,一些新功能
来源:互联网 发布:感恩节由来 知乎 编辑:程序博客网 时间:2024/06/16 11:17
东西好多,感觉也还是没碰到,碰到再说吧,只说一下:
lambda函数
先说背景,在STL中,有三种方式给算法传递处理函数:
- 函数指针(函数名)
- 函数符(也就是仿函数,类中定义operator()方法)
lambda函数!
需求是什么呢?前两种,调入STL中使用和定义是分开的,不好看,到处找。。。
所以当场声明、定义、使用的无名函数lambda函数诞生了。。。
栗子:
//一个判断是否能被3整除的普通函数。bool f3(int x) {return x%3 == 0;}
//变成lambda函数什么样呢?[] (int x) ->bool {return x%3 == 0;}
其中,[]表示是无名函数,(int x)表示参数列表,->bool为返回值类型,{…}函数体。长的还算行,不是特别奇葩。。。
用起来呢?
std::count_if(unmber.begin(), number.end(),[] (int x) ->bool {return x%3 == 0;});
直接将函数写在参数处,代替原来的函数名,可以,做到了随用随写,清晰明了。。。恩。老清晰了,一点都不晕。。。
当然有一定的 简化方法,就是当lambda函数主体只由一条返回语句构成时,可以省略返回类型,因为会自动推断。所以上方的可以省略成:
[] (int x) {return x%3 == 0;}
但是,如果不仅只有一条return构成,就不能省略了:
[](double x) ->double {int y=x; return y;}
这样就老老实实写全吧!
最后说一句,附录是好东西,只是不方便总结,有问题可以查。
阅读全文
0 0
- 第18章,一些新功能
- 第3章 新功能(EE2.0)
- python3.6的一些新功能
- 第25周-window程序设计(基础篇)-第4章-滚动条新功能
- .NET Framework 3.5的一些新功能
- Android Studio 2.2 的一些新功能
- 第3章 Spring 4.0增强和新功能 I -- Spring4.3.8参考文档中文版
- 第4章 Spring 4.0增强和新功能 II -- Spring4.3.8参考文档中文版
- 第5章 Spring 4.0增强和新功能 III -- Spring4.3.8参考文档中文版
- 第6章 Spring 4.0增强和新功能 VI -- Spring4.3.8参考文档中文版
- 新功能
- Vs.Net2005 beta2,确实实现了一些新功能。
- 【版本升级】DevExpress v16.1.8发布 新版本引入一些新功能
- Android Studio 3.0全新时代:带来的一些新功能
- Android Studio 3.0全新时代:带来的一些新功能
- Android Studio 3.0全新时代:带来的一些新功能
- Java Math 类中的新功能,第 1 部分:实数
- Java Math 类中的新功能,第 1 部分: 实数
- 面部识别 or 屏下指纹,谁将会是全屏时代的霸主
- Reverse Words in a String III 翻转字符串中的单词之三
- 用中文写出数字
- 多线程编程
- 背包例题【dp练习】
- 第18章,一些新功能
- 唯快不破:Linux网络编程中socket常见错误分析
- 独立显卡ubuntu+配置sublime+matlab2016
- Parsing with Perl 6 Regexes and Grammars.pdf 2017 英文原版 免费下载
- MyBatis使用
- SiteMesh页面装饰器的使用步骤
- python语言介绍
- Linux Ubuntu14.04 tensorflow安装
- 唯快不破:TCP/IP中的SO_REUSEADDR和SO_KEEPALIVE