C++ 11的几大新特性为:引入了lambda表达式;改进了智能指针......。利用Lambda表达式,更方便的定义和创建匿名函数。这项新功能的添加同样也是用来缩短了(调用代码)距离,简洁,效率,功能性都有提升,下面详细介绍。
C++声明Lambda表达式
[ capture list ] ( params list ) mutable exception -> return type { function body }
各项详细介绍:
1.capture list: | 捕获外部变量列表 |
2.params list: | 形参列表 |
3.mutable指示符: | 用来说明是否可以修改捕获的变量 |
4.exception: | 异常设定 |
5.return type: | 放回类型 |
6.function body: | 函数体 |
此外还有几种“不完整”的Lambda表达式:
//①
[capture list](params list)->return type{function body}
//②
[capture list](params list){function body}
//③
[capture list]{function body}
详细介绍:
》格式①:声明了const类型的表达式,这种类型的表达式不能修改捕获列表中的值。
》格式②:省略了返回值类型,但编译器可以根据以下规则推断出Lambda表达式的返回类型:如果有返回值,根据返回值的类型确定;没有返回值,则为 viod类型。
》格式③:省略了参数列表,类似普通函数的无参函数。
庐山真面目:使用方法