C++11新特性-Lambda表达式

定义形式

[外部变量访问方式说明符] (参数表)->返回值类型
{
语句组
}

外部变量访问方式说明符可以是=或&.
表示语句组中用到的,定义在{}外面的变量在{}是否允许被改变.
=表示不允许.
&表示允许
->返回值类型可以省略

例子

int a[4]={
    
    12,237,6};
sort(a,a+4,[=](int x,int y)->bool{
    
    return x%10<y%10;});
for_each(a,a+4,[=](int x){
    
    cout<<x<<" ";})

上面一段代码中有两个lambda表达式
第一个表达式定义了sort的排序规则:即将a数组按照个位数从小到大排序.
第二个表达式省略了->返回值类型,只用于顺序输出元素.

外部变量访问方式说明符

1. [ = , & x , & y ] 1.[=,\&x,\&y] 1.[=,&x,&y]表明外部变量 x x x, y y y的值可以修改,其他外部变量的值不能修改.
2. [ & , x , y ] 2.[\&,x,y] 2.[&,x,y]表示除 x , y x,y x,y以外的外部变量都可以修改.

猜你喜欢

转载自blog.csdn.net/weixin_43353639/article/details/107736402