位置: 编程技术 - 正文

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

  • 税务金三系统是什么?
  • 累计个税是每年累计吗
  • 销售农产品是否可以抵税
  • 劳务公司临时工工资需要申报吗
  • 补提上一年度的年终奖
  • 注册资本金实缴和认缴区别
  • 上月计提工资下月要冲回吗冲会吗
  • 专项土地补偿款怎么入账?
  • 周转材料计入什么账
  • 多层股权结构设计控制法
  • 取得进项票当月未认证
  • 机动车发票抵扣联有什么用
  • 哪些单位可以开专票
  • 物流公司零税率发票是怎么回事?
  • 资产转让的优点
  • 工商年报报表
  • 长期借款费用资本化
  • 合同返点提成犯法吗
  • 小规模纳税人跨月冲红退税
  • 申报印花税填表过程
  • 公司如何确定总股本
  • 企业注销个税怎样更正申报呢
  • 可抵扣的金税盘维护费会计分录怎么做?
  • 调整增值税税率
  • 去年的发票可以红冲重新开具吗?
  • 个人出租车辆给公司个人所得税
  • 会计折算是什么意思
  • igfxext.exe
  • 以前年度多计提的附加税怎么冲回
  • PHP:curl_close()的用法_cURL函数
  • 银行存款收款凭证属于什么凭证
  • yolov5 教程
  • php返回值
  • 快递收据能否作为发票
  • 出口已使用的设备退税还是免税
  • 安装elipse教程
  • vue子组件获取dom元素的方法
  • css水平居中和垂直居中怎么设置
  • 城建税减半征收会计分录
  • ps大型文件储存位置在哪
  • phpcms安装无法连接数据库服务器
  • 增值税普通发票和专用发票有什么区别
  • 房地产转让条例最新
  • wordpress怎么添加图片
  • 政府专项补贴税收
  • 在阿里云的云主机之间怎么通信
  • 现代服务行业有哪些
  • 研发支出的账务怎么处理
  • CMS不要让MySQL为你流泪
  • 如何做一份有效的面包
  • 小规模未开票收入按1%还是3%
  • 残保金如何做账务处理
  • 营业收入的核算方式有哪些
  • 出资入股是什么意思
  • 当期应纳增值税税额的计算流程
  • 公司没有销售收入
  • 营改增后土地出让增值税
  • 支付单位结算卡费用计入什么科目
  • 来料加工和进料加工的相同之处
  • 报销烟酒的分录是什么
  • 免费样品销售给客户怎么入账
  • 小规模一季度不超过30万是不含税吗
  • 资产负债率多少属正常范围
  • sqlserver 查看表
  • sql触发器菜鸟教程
  • 关于mysql数据库服务登录下列描述正确的是
  • bios设置电脑定时启动
  • windowsxp搜索不到文件
  • chcfg.exe是什么
  • macos 怎么用
  • linux wordpress gzip压缩开启方法
  • ubuntu20.04安装配置
  • WIN10任务栏时间不动
  • dos echo命令
  • cocos2dx小游戏
  • unity4.x升级到unity5.x材质丢失
  • Node.js中的事件循环是什么
  • mod兼容性
  • 浅谈一下新冠的好处
  • jquery的children方法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设