C++11的新特性 Lambda 函数

lambda函数的特点

简洁: 比起函数来说,要少写不少代码。

额外的功能: lambda可以访问作用域内的任何动态变量,要扑捉要使用的变量,把它的名称放在[ ] 就可以了。[z] 表示按值访问, [&z] 表示按引用访问 [=] 表示访问了所有的动态变量, [&]表示引用访问了所有的动态变量。


语法: [ 引用的变量](类型 变量){ }      返回的类型为自动推导出的结果。


判断是否能被3整除

bool f3(int x){ return x%3 == 0}

判断是否能被13整除

bool f13(int x){ return x%13 == 0}


如果用lambda函数


[](int x){ return x%3 == 0 }

[](int x){ return x%7 == 0 }


如果判断一些列的数当中有多少个可以分别被3和7整除,

int count3=0;

count3= std:count_if(numbers.begin(), numbers.end(), [](int x){ return x%3 == 0 } );

int count13=0;

count13= std:count_if(numbers.begin(), numbers.end(), [](int x){ return x%13 == 0 } );


采用以下方式,用一条语句就可以实现

int count3=0

int count13=0;

std:count_if(numbers.begin(), numbers.end(), [&](int x){ count3 += x%3 == 0;  count13 += x%13 == 0; );        //引用count3 和 count13.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值