位置: 编程技术 - 正文

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

  • 增值税16%降到13%的留抵退税的情况说明咋写
  • 山东省增值税发票查验平台
  • 代加工可靠吗
  • 免交增值税免印花税吗
  • 质保金一年怎么写
  • 百旺税控盘反写不了怎么回事
  • 为职工代垫的水电费应计入
  • 金蝶未结账是否可以重新起账
  • 固定资产折旧购买日期还是使用日期呢
  • 没有土地使用证的房子拆迁怎么办
  • 旧设备用于投资是否应按视同销售处理
  • 平销返利企业所得税处理
  • 核定征收企业可以申请高新技术
  • 会计凭证的内容中应包括会计分录
  • 票货分离怎么处理
  • 暂估入库商品用什么科目
  • 公司为什么要成立工会委员会
  • 商铺 公司
  • 委托加工物资增值税怎么计算
  • 包工包料的工程怎么做账
  • 简易计税开票开成了一般计税的税率会比对不通过吗
  • 苹果输入法快捷键怎么调出来
  • 在windows7中,桌面图标的排列顺序是
  • 前端实现拖拽拉动图片
  • 成品油的消费税可以抵扣吗
  • 经营租赁固定资产体现实质重于形式
  • PHP:pg_options()的用法_PostgreSQL函数
  • uniapp 安卓原生
  • 投影仪哪种光源亮度高
  • php中分页功能的实现
  • 魅族路由器mini刷机
  • zend framework手册
  • 公司已经注销了还能劳动仲裁吗
  • 会计凭证附件规范要求
  • 定额材料损耗的计算公式
  • php签到功能思路
  • 微信红包 python
  • 进货成本价是什么
  • 学生个人网站制作html代码
  • 如何用css设置图片大小
  • 单位购买电水壶会计入账
  • 购进商品的运费怎么算
  • 公司进口的货物会计分录
  • 折扣返利的账务处理
  • 物业管理费开票类目
  • 管理费用的核算内容主要包括哪些
  • sql 分组排名
  • 企业给员工的福利体检报告
  • 软件研发费用怎么做账
  • 机关事业单位购买口罩
  • 开票金额为什么是负数
  • 未使用的机器设备有没有实体性贬值
  • 股权转让低于净资产的税怎么算
  • 跨月发票红冲还要交税吗
  • 缴纳工会经费的依据
  • 物流货到付款可以吗
  • 公司营运成本
  • 工业企业存货发出计价的方法
  • sql如何学
  • mysql事务用法
  • 目前默认系统%1
  • w7系统删除所有东西
  • 怎么在centos中创建一个文件
  • 如何查看ubuntu系统版本
  • imac怎么查使用时间
  • pap是什么文件
  • win8系统蓝屏后无法修复
  • url跟uri
  • shell按行读取文件存入数组
  • cmd 远程登录
  • 希尔排序数据结构的代码
  • python3循环语句
  • unity3d界面
  • android 点击按钮如果数据库有数据就更新,没有就创建
  • 批处理倒计时30秒内打开文件a,否则30秒后执行文件b
  • android网络编程题库
  • [置顶]马粥街残酷史
  • 点击电子税务局里的税务数字账户不跳转怎么回事
  • 百旺开票人怎么把管理员改成人名
  • 建筑业统一发票税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设