C++之Lambda函数


#include<iostream> 
#include<algorithm>

using namespace std;


void t_Lambda(){

// 匿名函数  

// [函数对象参数]    (操作符重载函数参数)    mutable 或 exception 声明    ->返回值类型     { 函数体 }

// [外部变量访问方式说明符] (参数表) -> 返回值类型 {   语句  }  
  
// △1. [函数对象参数]     必须, 只能使作用范围内可见的局部变量.
// 可以为  空、= 值传递、 & 引用传递、this、a 按值传递,不能修改 a  函数默认 const, 要修改可添加 mutable 修饰符、 &a、 a,&b a 按值 b 按引用传递、
// =,&a,&b 除 a b 外按值传递、 &,a,b 除 a b 外按引用传递.  

//  2. (操作符重载函数参数)    参数, 可以省略 按值传递 如 (a, b),  按引用传递 如 (&a, &b) 

// 3. mutable 或 exception 声明      可省略.   按值传递函数对象参数时, 加 mutable 修饰符可修改参数的拷贝. exception 指定函数抛出的异常, 如 throw(int) 

// 4.  -> 返回值类型   当返回值为 void, 或者函数体中只有一处 return 时可省略. 

// △5. {函数体} 不能省略, 但可以为空.


// 例1    [=](int x, int y) -> bool { return x%10 < y%10; }

// 例2    auto ff = [=,&y,&z](int n) {   cout <<x << endl;    y++; z++;  return n*n; };


int a[4] = {2, 11, 4, 33};
sort(a, a+4, [=](int x, int y) -> bool { return x%10 < y%10; } );
for_each(a, a+4, [=](int x) { cout << x << " ";} );           //  按个位排序:  11  2   33   4    

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值