位置: 编程技术 - 正文

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

  • 中级税务师是什么
  • 企业所得税税款可以扣除吗
  • 第四季度报表和年度报表一样吗
  • 公对私转账没有到账怎么查询
  • 入资款印花税怎么计算
  • 企业所得税低于多少不用交
  • 养蜂合作社怎么申请补贴
  • 技术成果投资入股企业所得税递延纳税备案表
  • 知道增值税如何计算开票金额
  • 预付卡没用完的可以退吗
  • 工资薪金所得适用的税率是
  • 物业前期介入费用测算
  • 一般纳税人企业要交哪些税
  • 营改增对固定资产的影响
  • 广告费准予扣除怎么算
  • 旅游业差额开票税率
  • 购买方申请的红字信息表需要邮寄给销售方吗
  • 金融企业准备金计提管理办法最新
  • 其他应付款和其他应交款区别
  • 个体户生产经营所得税率表2023
  • 季度所得税可以不预缴吗
  • 应交增值税为负数代表什么
  • 一般纳税人资格证明在哪里开具
  • 初始投资成本与可辨认净资产公允价值
  • 科研费用拨款如何记账?
  • 开启共享文件夹
  • 养殖专业合作社业务范围包括哪些
  • 会计上金融资产包括哪些
  • ctl.start
  • Sublime Text v4.0(4143)破解方法
  • 二手车交易如何开票
  • 刚收到的假发怎么处理
  • css搜索框代码怎么写
  • 购买办公用品没收到发票怎么做账
  • 开发票为什么要对公账户?
  • fall 瀑布
  • 目标检测现状
  • 先申报工资还是先发工资
  • 小规模场地租赁费税率是1还是5
  • 小微企业所得额如何计算
  • 高效刷题app
  • 公司pos机使用规范
  • 无形资产是有在期资产吗
  • 以美元报关是否要交税
  • 快速实现愿望超灵的方法
  • 三免三减半税收政策中的递延所得税
  • 旅行社小规模纳税人差额征税
  • 首次购买金税盘怎么做账
  • 银行承兑汇票是什么意思
  • 固定资产以提足金为准吗
  • 税收优惠退回的税金怎么入账
  • 金蝶主要业务及软件产品
  • 赠送货物怎么做账
  • 个体工商户可以变更法人吗
  • 银行账户是不是卡号
  • 编制合并报表时最关键的一步
  • win7系统如何一键还原
  • 电脑xp系统的设置在哪
  • ubuntu 10.04安装
  • 2016年最火的歌曲排行前100首
  • 在windows下把绿色程序添加到鼠标右键的方法
  • window10重启按什么键
  • win7无线网络连接不上怎么解决方法
  • win10桌面图标显示错误
  • 为什么window10容易发热
  • 安卓软件集
  • node.js模块化
  • android jdk下载
  • 一个简单的灵魂
  • node javascript
  • nodejs webapp
  • 安卓画图板
  • jquery基本知识
  • android10获取设备id
  • python队列只能一个个读取吗
  • 爬虫如何识别验证码
  • opencv识别结果输出
  • android数据存储文件读写实验
  • 英国税务局缴纳税款方式
  • 下载国税网上办税服务厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设