位置: 编程技术 - 正文

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

  • 增值税发票综合服务平台验证口令失败
  • 耕地占用税是什么税种
  • 劳务报酬收入是否含税
  • 企业违约金收入会计分录
  • 残保金需要计提分录吗
  • 所得税一般纳税人几个点
  • 个税手续费返还属于政府补助吗
  • 企业退回企业所得税分录
  • 现金支票填写注意事项有哪些
  • 差旅费属于什么支出类型
  • 简易征收进项税额转出什么意思
  • 向税务局缴纳工伤保险费有发票吗
  • 车间报销费用的会计分录
  • 库存商品未入库
  • 冲失业保险分录怎么做
  • 出口退税计算方法是免退税吗
  • windows11开始菜单怎么居中
  • mac终端更新系统
  • 苹果电脑使用u盘之前需要设置什么?
  • 贴现到期不获付款
  • 代开专票名称没有填写可以报销吗
  • 低值易耗品处理的目的
  • 递延收益为什么计税基础为0
  • 前端doctype
  • 带壳的栗子 (© Kai Keisuke/Shutterstock)
  • torch.save用法
  • 经济补偿金个人所得税计算公式
  • php获取访问者mac地址
  • vue入门
  • 使用vue要安装什么软件
  • 用cat命令创建f1和f2文件
  • 先计提所得税还是先结转成本
  • 所得税申报资产总额
  • 公司租赁员工电脑怎么办
  • node运行vue项目
  • 长期待摊费用账务处理包括哪两部分
  • 手续费及佣金支出核算
  • 会计科目累计摊销
  • 行政事业单位工作时间
  • 应交增值税减免税款是什么意思
  • 会计手工做账的目的
  • 银行季度结息怎么记账
  • 企业代办业务有哪些
  • 发票怎么保管不会坏
  • 成本类科目借贷规则
  • 五证合一办理步骤
  • 明细分类账的填写
  • 建账初期账务处理程序
  • 电脑winxp系统
  • windows service 2008 r2
  • mac变得很卡很慢
  • 硬盘安装后不显示
  • 电脑主板bios设置图解
  • win7系统隐藏文件夹怎么取消隐藏
  • win10系统开机蓝屏得重启后才能开机
  • 如何自定义win键
  • linux bas
  • windows7组织
  • javascript create
  • jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
  • python基本用法
  • python numpy矩阵
  • 在动画制作中一般默认帧数选择为
  • unity 读取txt
  • div+css布局是什么
  • mod兼容性
  • 学习雷锋好榜样
  • 详解使用Visual Studio Code对Node.js进行断点调试
  • js限制字符长度
  • android support包
  • jQuery模拟select实现下拉菜单功能
  • 安卓手机安装推特
  • windows安装程序安装在哪里
  • 加油站怎么收税
  • 社保在税务系统交,有何用意
  • 杭州汽车摇号中签率多少
  • 一般纳税人每月开票金额有限额吗
  • 增值税发票开具后多长时间可在查询平台查询到?
  • 税务登记制度是对纳税人识别的完善
  • 经济增长的术语
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设