位置: 编程技术 - 正文

【深入了解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教程)

  • 税务机关内部控制措施
  • 永久性差异什么是暂时性差异
  • 开票地址一定要写全吗
  • 借款利息收入计提分录
  • 在建工程应交税费会计分录
  • 增值税税控系统技术维护费怎么抵扣
  • 个体户开运输发票怎么开
  • 建筑公司成本发票不够
  • 公司的旅游费怎么处理
  • 零售不要发票如何报税
  • 财产损失税务备案
  • 航空货运单可以由谁来填写
  • 无形资产内部研究开发支出的确认和计量
  • 城镇土地使用税纳税义务发生时间
  • 供电局发票金额可以多开吗
  • 增值税普通发票怎么开
  • 营改增后房屋维修的发票可以抵扣吗?
  • 集团企业涉税需求网络
  • 无形资产摊销可以按照其价值和使用情况
  • 个税和实发不一样
  • 无法支付的其他应付款可以用现金核销吗
  • 公司购买办公用品300元,以现金支付,购入后即被领用
  • 不开票的收入怎么避税
  • 办劳务发票需要什么资料
  • 工商年报纳税总额怎么填写才正确
  • 物业费按年收取的规定
  • 税收分类编码选错会怎样
  • win10怎么改通知
  • 手机CPU天梯图2023年7月
  • php遍历显示多维数组
  • 屏幕颜色怎么变
  • 笔记本默认网关不可用怎么修复
  • 单位话费谁负责交
  • manager's office是什么意思
  • php odbc
  • 公司整体收购缴税
  • 如何通过利润表看企业收益
  • 临时工工资计入哪里
  • Javan tree frogs sitting together on a stalk in Indonesia (© SnapRapid/Offset by Shutterstock)
  • 以前年度的销售退回,冲减哪年的
  • 基于javaweb是什么意思
  • googlelabs
  • 没有发票的支出可以扣除企业所得税么
  • date=date
  • 待摊费用在资产负债表中怎么表示
  • 为什么开发票能抵税
  • php7编译安装gd库
  • python读取不到文件怎么办
  • 增值税加计扣除计入什么科目
  • 营业收入计入销售收入吗
  • ubuntu20.04vim
  • 公司收到待报解预算收入在哪里查具体情况
  • 企业自有房产的认定标准
  • 个人所得税手续费返还政策文件
  • 弃置费用的摊销计算
  • 建筑工程拨款申请模板
  • mysql 5.7.11 winx64安装配置教程
  • mysql修改后立即查询
  • mysql 5.7.11 winx64.zip安装配置方法图文教程
  • winxp启动
  • linux如何调出鼠标
  • win7定时关机没反应
  • win8系统切换桌面
  • kprcycleaner.exe是什么
  • 四个版本的雪国开头翻译
  • 麒麟系统怎么执行命令
  • android开发详解
  • Unity3D游戏开发标准教程
  • AndroidAnnotations框架Eclipse下的配置
  • javascript中继承
  • 税务分享风险如何解决
  • CA证书如何办理?
  • Excel表格如何导出
  • 外购应税消费品用于生产非应税消费品
  • 房屋租赁税率是6还是9
  • 美国各地区消费水平
  • 应税和非应税是什么意思
  • 上海如何用电子医保卡
  • 问一下医院
  • 出口货物开票税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设