位置: 编程技术 - 正文

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

  • 其他权益工具投资属于什么科目
  • 土地使用税怎么征收标准
  • 分期付款购买商品的会计分录
  • 制药企业税收优惠政策
  • 报销是否需要发票
  • 个人与公司交的税怎么算
  • 退休工资缴纳个人所得税税率表
  • 在大陆工作的香港明星
  • 应付账款扣款怎么做账
  • 专用发票可以下账吗
  • 企业购入物资合同模板
  • 哪些税不适用征管法
  • 增值税抵扣联是什么意思
  • 购买固定资产的进口关税
  • 建筑业如何核算费用
  • 个人是否可以开展募捐
  • 企业所得税季报资产总额怎么填
  • 一般纳税人未达到起征点要交税吗
  • 工会筹备金和工会经费金额一样吗
  • 母公司的注册资金比子公司少可以么
  • 个人独资企业是什么意思
  • 国税退税怎么做账
  • 筹建期间发生的费用计入什么科目
  • 反映留存收益的账户
  • 非营利组织企业所得税政策
  • 测试费怎么入账
  • 预计毛利率
  • 员工出差时法律规定
  • 金蝶软件反年结账怎么弄
  • php日期差
  • dwmexe是什么进程
  • 借股东现金会计分录
  • 预缴企业所得税怎么做账务处理
  • 微信小程序实现文件上传
  • SpringBoot+Vue实现在线商城系统
  • matlab基础介绍
  • 一个简单安全的小故事
  • 应交税费应交增值税销项税额
  • 防伪税控技术服务费订单号怎么查
  • wordpress换域名后主题乱了
  • 赠送给客户的礼品税法
  • 收到发票并支付货款怎么做账
  • 销售成本会计英语
  • 跨月的增值税专用发票怎么冲红或者是作废
  • 原材料基本账务处理办法
  • 企业所得税资产总额在哪里填列
  • 厂家核销费用直接扣除吗
  • 汇算清缴主要检查什么
  • 银行帐户维护费怎么算
  • 收到银行结息收入怎么做会计分录
  • 高新技术企业认定管理办法
  • sql server字段
  • mac电脑快速查询
  • 电脑无法检测到麦克风怎么办
  • win8无法正常启动你的电脑
  • wincomp.exe - wincomp进程是什么意思
  • win7系统360浏览器自启动怎么关闭
  • 图形化ssh
  • linux 文件执行
  • 以root身份建一个目录/test
  • mac文稿怎么查看字数
  • Mac系统修复怎么进入
  • linux charon
  • win10一年更新一次
  • xp更改远程端口
  • windows开发教程
  • win10没空间
  • win10预览文件怎么显示内容
  • 常见的场景切换效果有哪些
  • ES6 javascript的异步操作实例详解
  • android中的active_result
  • 批处理的应用
  • 用bat实现定时执行任务的批处理文件
  • 百度地图给map添加
  • javascript总结笔记
  • javascript Slip.js实现整屏滑动的手机网页
  • js原生方法大全
  • 股权转让怎么计算个人所得税
  • 房产税是按套还是按套
  • 盘州市税务局党组成员图片
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设