C++11 lambda
来源:互联网 发布:java十个数冒泡排序 编辑:程序博客网 时间:2024/06/01 10:12
c++11 lambda
的经典形式是 [capture](params){body}
。
capture
指定该匿名函数外的哪些参数在body
中使用(捕获)。
[a,&b](){}
表示a
在body
中可以以值的方式捕获,b
在 body
中可以以引用的方式捕获。
[=]
表示捕获所有外部自动变量。[]
表示不捕获任何变量。
[capture](params)->ret{body}
表示 caputre
中的变量都是 const
的, ret
指定返回值的类型。
[caputre]{body}
表示无参数,params
可以省略
practice in c++11 lambda
:
#include<bits/stdc++.h>using namespace std;int main(){ srand(time(NULL)); vector<int> a(20); for(auto& v:a) v=rand()%100; int cnt=0; //ordinary sort(a.begin(),a.end(),[&cnt](int x,int y){++cnt;return x<y;}); cout << cnt << endl; //variables in capture is read-only, below is wrong // sort(a.begin(),a.end(),[&cnt](int x,int y)->bool{++cnt;return x<y;}); sort(a.begin(),a.end(),[](int x,int y)->bool{return x<y;}); //no params is ok []{cout << "hello world" << endl; }(); for(const auto &v:a ) cout << v << endl;}
阅读全文
0 0
- [c#]: Lambda
- C#-Lambda
- c#Lambda
- c#lambda
- C++11 学习笔记 lambda表达式
- 【C++】C++11特性:lambda和function
- C++11 学习笔记 lambda表达式
- C++11 学习笔记 lambda表达式
- 【c/c++】Lambda表达式
- C#--Lambda表达式
- C++ox 之 lambda
- C#:Lambda 表达式
- C++lambda表达式
- C++lambda表达式
- C++lambda详解~读书笔记
- C# Lambda表达式
- C++:lambda表达式
- C++lambda详解~读书笔记
- Intel2017实习生电面经历
- WiFi的显示及WPA2_PSK加密
- Android 获取屏幕宽高-以像素为单位
- BootStrap 分页
- 机器视觉开源代码集合
- C++11 lambda
- 第一天开通CSDN的记录
- 欢迎使用CSDN-markdown编辑器
- Android系统APP之SettingsProvider
- rsync 3.1.1版本非root运行服务时配置文件的一点改动
- Androd学习笔记
- 发送有序广播
- Android Am命令用法
- 动态规划--最优编辑