位置: 编程技术 - 正文

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

  • 建筑业收到预收款预缴增值税
  • 待报解预算收入计入什么科目
  • 小规模纳税人所得税怎么征收
  • 职工食堂费用计入管理费用
  • 流动资金包括哪三种
  • 销项负数发票怎么做账
  • 残保金减免需要每月发放不低于本市最低工资标准是应发
  • 增值税预缴税金交错了怎么办
  • 留抵税额抵税怎么做分录
  • 税局代开专票对方隔月退回重开如何做账务处理呢?
  • 企业破产清算怎么做账务处理实务工作
  • 能否异地进行税款支付?
  • 老会计有多厉害
  • 个人所得税费怎么计算2021
  • 增资有哪些途径
  • 土地增值税成本扣除项目
  • 应交税费的期初余额是借还是贷
  • 发票作废了还能查验吗
  • 农民专业合作社属于什么企业类型
  • 房产税计税税率怎么算
  • 以前年度少计收入怎么办
  • 增值税一般纳税人是什么意思
  • 租金不开专票合理吗
  • 公司代缴的个税怎么查询
  • 增值税申报错误已经扣税怎么处理
  • windows10如何关机
  • linux tr
  • 预收的购货款属于收入吗
  • 一借多贷的会计分录怎么写
  • 在anaconda下安装python
  • 增资的会计处理方法
  • 很值得收藏
  • php单例模式连接数据库
  • 离职之后个税
  • php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
  • 实用工具书推荐
  • vue面试题2020
  • conda操作
  • 计算机视觉的应用
  • php图片代码
  • 研发部门的房租物业费进什么科目
  • 增值税发票没认证可以退回吗
  • 固定资产一次性扣除如何做账
  • 营业执照更换法人需要哪些手续
  • 利润表中所得税费用为负数是什么意思
  • 新会计准则应付账款
  • 预收款增值税纳税时间
  • 小规模纳税人在哪里查
  • 车险代买的出了事故怎么办
  • 加计减免其他收入怎么填
  • 法人往自己公司打款没用注明用途
  • 如何降低未分配利润的方法
  • 砂石资源税怎么算
  • 长期债券是长期借款吗
  • 毁损的原材料怎么处理
  • 年初未分配利润在利润表怎么填
  • 新成立的公司都是小微企业吗
  • 房地产会计相关内容
  • JDBC探索之SQLException解析
  • 数据库聚簇索引和非聚簇索引
  • ubuntu右键菜单
  • win8系统出现蓝屏怎样处理
  • mac如何快速关闭程序
  • windows关闭安全引导
  • win7怎么升级到win10系统软件还在吗
  • win7系统安装不了软件怎么办
  • win7电脑操作日志怎么查看
  • typescript尖括号
  • javascript简明教程
  • jquery获取表格一列的值
  • 网站检测系统
  • jquery怎么实现单页面
  • js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
  • 关于翡翠手镯知识
  • android 网络编程
  • 消费税增值税的区别与联系
  • 个税已申报税额为0是什么意思
  • 浙江地税电子税务局
  • 山西省税务
  • 江苏电子税务局网址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设