C++11学习笔记4---lambda表达式
2015-10-28 18:57
375 查看
当向一个函数传递一个lambda时,同时定义了一个新类型和该类型的一个对象。
传递的参数就是此编译器生成的类类型的未命名对象。
1.为什么要使用lambda表达式?
有一些泛型算法,比如<algorithm>里面的sort(),对于一定对象的比较需要用一个谓词或者可调用对象重载比较操作。
这个时候可以使用lambda表达式作为参数。很方便。
lambda就是一个匿名函数,在一些需要却又不想要为其命名的时候使用,比如将其作为参数,传给接收可调用对象作为参数的函数模板。
2.使用格式
[capture list] (parameter list) -> return type {function body}
lambda函数是定义在函数中的,而要使用该函数里面定义的非static局部变量,就需要进行捕获,即在capture list里面声明。
3.关于捕获
[=]表示隐式值捕获
[&]表示隐式引用捕获
传递的参数就是此编译器生成的类类型的未命名对象。
1.为什么要使用lambda表达式?
有一些泛型算法,比如<algorithm>里面的sort(),对于一定对象的比较需要用一个谓词或者可调用对象重载比较操作。
这个时候可以使用lambda表达式作为参数。很方便。
lambda就是一个匿名函数,在一些需要却又不想要为其命名的时候使用,比如将其作为参数,传给接收可调用对象作为参数的函数模板。
2.使用格式
[capture list] (parameter list) -> return type {function body}
lambda函数是定义在函数中的,而要使用该函数里面定义的非static局部变量,就需要进行捕获,即在capture list里面声明。
3.关于捕获
[=]表示隐式值捕获
[&]表示隐式引用捕获
相关文章推荐
- 确保线程执行函数体正确使用引用传递
- C++11 lambda 表达式解析
- C语言基础-分支结构
- C++ STL queue化繁为简介绍
- C++编程 (三)--- 深入C++后台开发
- c语言短信猫开发代码
- 1028 C语言文法
- C语言文法阅读与理解
- c语言文法分析
- c语言文法
- Effective C++笔记(一)
- 在c语言中自定义了一个函数,在main中调用时提示找不到标识符
- 如何禁止类的拷贝构造函数和复制构造函数
- c++11 线程同步信号的使用
- 非纯c++模式实现ogre1.9的Android版
- C语言文法
- 日志库EasyLogging++学习系列(7)—— 记录方式详解
- 如何解决C++中用eof()多读一次
- 在C#中使用c++编译的ocx的方法
- c++函数指针