位置: 编程技术 - 正文

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

  • 出口退税账务怎么做账
  • 多交增值税怎么算
  • 小微企业免税销售额填含税还是不含税
  • 年末未分配利润怎么处理
  • 无发票入账违反哪条法律
  • 展示费是业务宣传费吗
  • 商品流通企业成本核算的内容包括
  • 出租固定资产取得的租金收入属于什么收入
  • 以前年度损益调整结转到哪里
  • 会计利润和税务利润不一致
  • 中小企业代扣代缴增值税抵扣时限
  • 小规模建筑安装增值税税率是多少
  • 公司缴纳社保部分从个人扣除 犯法吗
  • 公司交一部分社保个人还要交多少钱
  • 工资先发一半
  • 个体户免税额度超出了
  • 红字信息表跨越可以撤销吗
  • 减资弥补亏损是什么行为
  • 留抵税额算进项税额吗
  • 公司对外租赁
  • 银行存款转定期存款计入什么科目
  • office com组件修复
  • Win11怎么设置屏幕熄灭时间
  • 税收保全措施的期限一般不超过几个月
  • 文竹发黄怎么挽救?
  • RuntimeError: (PreconditionNotMet) The third-party dynamic library (cudnn64_7.dll) that Paddle depen
  • 瑞芯微 8nm
  • 在anaconda下安装python
  • 会计编录怎么做
  • 银装素裹的意思和造句
  • webssh github
  • php curl命令详解
  • php zend
  • 资金集中度指标公式
  • 办公费抵扣标准
  • react devtools
  • html小游戏代码大全
  • 可予税前扣除的合理部分
  • 应交增值税减免税额怎么结转
  • break能结束一个函数的调用
  • java中通配符作用
  • 残疾人加计扣除工资按应发还是实发
  • 增值税发票2年了还能开吗
  • 应交税费为负数在资产负债表里怎么填
  • 织梦发布文章栏目怎么不显示
  • 视同销售的增值税怎么申报
  • 汇兑结算方式的会计分录例题
  • 员工工作服扣款
  • 存货报废进项税额需要转出吗
  • 房地产开发企业会计制度
  • 项目投标代理服务方案
  • 企业所得税汇算清缴操作流程
  • 待处理财产损溢属于什么类科目?
  • 半成品会计处理流程
  • 进口产品内销如何交税
  • 向客户收取贴纸费用怎么说
  • 以考核为由扣除工资
  • sqlserver代理服务启动失败
  • server2008 无法启动
  • Windows开关机音乐-哔哩哔哩biibii
  • mac怎么访问windows
  • linux系统ln命令
  • 如何安装win7系统教程
  • linux安装gdb命令
  • win8如何关闭杀毒软件
  • unity怎么bake
  • 使用jquery实现的项目
  • js拖拽元素到另一个元素
  • python可变参数和不可变参数
  • Python实现定时任务
  • unity c++ dll
  • python数据类型详解
  • 北京海淀大集一览表?
  • 纳税申报模拟
  • 国家税务总局,河北省税务局
  • 资源税原矿和选矿的区别
  • 城市维护建设税法自2021年10月1日起施行
  • 地税局社保宣传标语
  • 没有代理记账资格的公司能代理记账吗
  • 会计专业有必要读博士吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设