Cocos2dx 3.0 过渡篇(十二) lambda表达式的使用

本文介绍了Cocos2dx 3.0版本中如何使用lambda表达式,包括在创建菜单和处理回调时的应用,以及如何捕获外部变量。通过示例展示了不同捕获方式对访问外部变量的影响,如引用和值捕获。
摘要由CSDN通过智能技术生成
本篇博客来自star特530,转载请注明出处http://blog.csdn.net/start530/article/details/19913611

Cocos2dx 3.0 版本后加入了lambda表达式,或者说C++ 11终于引入了lambda表达式,那么,什么是lambda表达式呢?

例如调用<algorithm>中的std::sort,ISO C++ 98 的写法是要先写一个compare函数:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. bool compare(int & a, int & b)  
  2. {  
  3.     return a > b;   // 降序排序  
  4. }  
然后,再这样调用:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. sort(a, a+n, compare);  

然而,用ISO C++ 11 标准新增的Lambda表达式,可以这么写:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. sort(a, a + n, [](int a, int b){ return a > b;}); // 降序排序  
这样一来,代码是不是简洁多了呢?

由于Lambda的类型是唯一的,不能通过类型名来显式声明对应的对象,但可以利用auto关键字和类型推导

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值