初入lambda表达式 (主要是c++11)
2024-09-30 16:17:10
写一篇不猫的博文吧
定义
lambda表达式的定义如下
[capture](parameters) mutable ->return-type{statement}
翻译成人话就是
1.[capture]:捕捉列表。捕捉列表总是出现在Lambda函数的开始处。实际上,[]是Lambda引出符。编译器根据该引出符判断接下来的代码是否是Lambda函数。捕捉列表能够捕捉上下文中的变量以供Lambda函数使用;
2.(parameters):参数列表。与普通函数的参数列表一致。如果不需要参数传递,则可以连同括号“()”一起省略;
3.mutable:mutable修饰符。默认情况下,Lambda函数总是一个const函数,mutable可以取消其常量性。在使用该修饰符时,参数列表不可省略(即使参数为空);
4.->return-type:返回类型。用追踪返回类型形式声明函数的返回类型。我们可以在不需要返回值的时候也可以连同符号”->”一起省略。此外,在返回类型明确的情况下,也可以省略该部分,让编译器对返回类型进行推导;
5.{statement}:函数体。内容与普通函数一样,不过除了可以使用参数之外,还可以使用所有捕获的变量。
en,大概是这样吧
让我们写几个程序练练手~~~
1.简单排序
#include <cstdio>
#include <algorithm>
int a[10]={0,1,2,3,4,5,6,7,8,9};
int main(){
std::sort(a,a+10,[](int x,int y){return x>y;});
for(register int i=0;i<10;i++)
printf("%d\n",a[i]);
return 0;
}
最新文章
- EC笔记:第三部分:17、使用独立的语句将newed对象放入智能指针
- MFC去掉标题栏
- Oracle数据库入门——高水位线详解
- 使用cocos2d-x 3.2下载图片资源小例子
- 然爸读书笔记(2013-4)----打造facebook
- splice从数组中删除指定定数据
- ubuntu搭建git服务器
- ATL dll注册失败
- 111_climbing-stairs
- 解决_CRT_SECURE_NO_WARNINGS警告
- python32模拟鼠标和键盘操作
- 观察者模式与.NET的delegate、event机制
- Day3-1 函数
- 控件_DatePicker
- 改善android性能工具篇【zipalign】
- Extjs定义的Fckeditor控件
- 源代码方式调试Mycat
- 【JS】判断浏览器类型
- linux下搭建python机器学习环境
- 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理
热门文章
- 使用方向变换(directional transform)图像分块压缩感知
- [Usaco2012 Open]Balanced Cow Subsets
- python优缺点分析及python种类
- 题解报告:poj 3061 Subsequence(前缀+二分or尺取法)
- SSRS域账号下 User &#39;XXX&#39; does not have required permissions的处理方法
- C# 判断文件和文件夹是否存在并创建
- Android开发学习——ButterKnife使用
- jsp中提示修改成功
- [BZOJ1088][SCOI2005]扫雷Mine DP
- 使用 ArrayAdapter 来定制 ListView