位置: 编程技术 - 正文

【深入了解cocos2d-x 3.x】内置数据结构(2)——Map(cocos2dx入门)

编辑:rootadmin

推荐整理分享【深入了解cocos2d-x 3.x】内置数据结构(2)——Map(cocos2dx入门),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocosbcx,cocos-creator,cocos-2dx,cocosbcx,cocosbcx,cocos2dx入门,cocos2dx4.0入门,cocos-2dx,内容如对您有帮助,希望把文章链接给更多的朋友!

其实最没意思的数据结构就是Map和Vector这两个了,完完全全就是std::map和std::vector上面再加了一层引用计数。当然,这也有好处,就是支持std算法以及支持cocos2d-x的内存管理机制。

看源码可以知道(下均只对Map进行分析,Vector同理)

内部的数据结构就是一个std::unordered_map,但是cocos2d-x对其做了一个限制,V必须是由Ref派生出来的数据类型,这样才能支持内存管理机制,下面是构造函数(有多个构造函数,只列举了一个)static_assert是表示在编译时检查,std::is_convertible是检测V与Ref*是否是继承关系,如果是,value为true,检测通过。如果不是,会在编译期就告诉我们,这个地方编译不过。

接下来就是插入函数

&#;得注意的是,这里先有一个删除操作,再进行插入,这样为了保证所有的key都是唯一&#;,但是这样会多造成一次遍历,因为unordered_map的插入是无序的,所以unordered_map的insert操作的复杂度是O(1),但是erase的删除必须要find key,所以会有O(N)的复杂度,所以效率会比直接使用unordered_map低。【深入了解cocos2d-x 3.x】内置数据结构(2)——Map(cocos2dx入门)

然后是retain,保持对V类型的object的强引用

接下来是删除函数

首先find到K,然后先执行release,再删除,返回1表示删除成功,0表示删除失败。

还有一些有意思的函数,如下这个

函数的作用是返回一个随机对象,首先判断非空,然后获取一个(0-data.size)的随机数,使用std::advance给begin增加一个随机数的长度,返回这个长度的迭代器。

Cocos2d-JS事件处理机制 在很多图形用户技术中,事件处理机制一般都有三个重要的角色:事件、事件源和事件处理者。事件源是事件发生的场所,通常就是各个视图或控件,

铁嘴李的Cocos2dx之旅之添加按钮 要在Cocos2d中使用Button,首先引入头文件#includeui/CocosGUI.husingnamespaceuil;引入完毕后,就创建button。代码如下:voidbtnGoodsItem(cocos2d::Ref*pSender,Widget::TouchEventTy

Cocos2d-JS键盘事件 Cocos2d-JS中的键盘事件与触摸事件不同,它没有空间方面信息。键盘事件不仅可以响应键盘,还可以响应设备的菜单。键盘事件是EventKeyboard,对应的键盘

标签: cocos2dx入门

本文链接地址:https://www.jiuchutong.com/biancheng/369067.html 转载请保留说明!

上一篇:Cocos2d-JS动画(cocos creator 动画制作)

下一篇:Cocos2d-JS事件处理机制(cocos2d-js教程)

  • 季度亏损还需要计提所得税吗
  • 职工的困难补助计入什么科目
  • 存货被盗的会计分录
  • 稽查查补的税款用什么时候的税率表示
  • 小规模申报增值税怎么申报
  • 报税中反写是什么意思
  • 滞纳金按什么比例算
  • 营改增后房地产企业账务处理
  • 一般纳税人销售旧货
  • 支付外汇货款
  • 营改增是初次分配还是再分配
  • 贷款利息收入要减去支付利息支出吗
  • 国外出差差旅费
  • 公司阅览室布置图片
  • 投资性房地产的定义
  • 投资者撤回投资额300000
  • 专用发票第一次怎么开
  • 个人生产经营所得
  • 工会开发票有税号吗?
  • 花椒油的税率
  • 销售淀粉的税率
  • 税务改革方向
  • 调整以前年度的库存
  • 抄报税失败是怎么回事
  • 什么情况下一般纳税人可以转为小规模纳税人
  • 党费返还款怎么做分录
  • win10点击添加账户没反应
  • mac 应用
  • 远程怎么控制电脑
  • hp tpn-c120笔记本
  • 预提费用的会计分录及冲销分录
  • 航天税控服务费
  • 增值税进项发票不够抵扣怎么办
  • ev4是什么文件
  • PHP:Memcached::delete()的用法_Memcached类
  • 招待费的范畴
  • 小米路由器2代改8t
  • 成本法的优点是计算较为简便,缺点是
  • 微信小程序不方便
  • 出口流程步骤
  • php使用oci8扩展连接oracle
  • 企业收到借款利息收入是否交增值税
  • opencv官方教程
  • php中的this
  • 小规模纳税人零申报流程
  • 长期待摊费用当月发生当月要摊吗
  • 房东租金收据
  • 桥接模式例题
  • 游戏公司不开票怎么缴税
  • 变更股东投资比例
  • 印花税步骤
  • sqlserver存储过程语法
  • 请培训老师的费用怎么处理
  • 跨年度少计摊销怎么做账
  • 企业之间无偿使用资金涉税
  • 公司报销专用发票
  • 在产品占用资金属于资产还是负债
  • 出口退税的会计处理
  • 记账凭证烂了要紧吗
  • MySQL中实现插入或更新操作(类似Oracle的merge语句)
  • mysql查看使用情况
  • sql语句的高级用法
  • windows任务管理器怎么用
  • linux回退
  • 如何查看电脑端口号
  • macbook看视频卡顿
  • Win8系统网络SSID怎么设置?Win8设置网络SSID的方法
  • Mac怎么设置默认视频播放器
  • win8.1启动设置
  • windows10更新遇到错误怎么解决
  • 通过手机号怎么查对方的位置
  • JavaScript事件处理的方式(三种)
  • unitystudio手机版
  • javascript概述及作用
  • 内容滑动切换效果怎么弄
  • 山东网上信访投诉平台
  • 江西企业社保缴费基数查询
  • 广东共青团如何解绑微信
  • 执法事业单位改革最新进展
  • 济宁高新区税务局办税大厅电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设