C++11lambda表达式精讲
Posted 多一些不为什么的坚持
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++11lambda表达式精讲相关的知识,希望对你有一定的参考价值。
lambda 表达式的概念和基本用法
lambda 表达式定义了一个匿名函数,并且可以捕获一定范围内的变量。lambda 表达式的语法形式可简单归纳如下:
[ capture ] ( params ) opt -> ret body; ;
其中 capture 是捕获列表,params 是参数表,opt 是函数选项,ret 是返回值类型,body是函数体。
因此,一个完整的 lambda 表达式看起来像这样:
auto f = [](int a) -> int return a + 1; ; std::cout << f(1) << std::endl; // 输出: 2
可以看到,上面通过一行代码定义了一个小小的功能闭包,用来将输入加 1 并返回。
在 C++11 中,lambda 表达式的返回值是通过前面介绍的《C++返回值类型后置》语法来定义的。其实很多时候,lambda 表达式的返回值是非常明显的,比如这个例子。因此,C++11 中允许省略 lambda 表达式的返回值定义:
auto f = [](int a) return a + 1; ;
参考资料:
C++11 lambda表达式精讲 (biancheng.net)
以上是关于C++11lambda表达式精讲的主要内容,如果未能解决你的问题,请参考以下文章