您的位置:首页 > 编程语言 > C语言/C++

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.关于捕获

[=]表示隐式值捕获

[&]表示隐式引用捕获
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: