位置: 编程技术 - 正文

cocos2d::Vector

编辑:rootadmin
v3.0 beta加入

推荐整理分享cocos2d::Vector,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

定义在"COCOS2DX_ROOT/cocos/base"的"CCVector.h"头文件中。

cocos2d::Vector<T>是一个封装好的能动态增长顺序访问的容器。 cocos2d::Vector<T>中的元素是按序存取的,它的低层实现数据结构是标准模版库中的标准顺序容器std::vector。 在Cocos2d-x v3.0 beta之前,使用的是另外一个顺序访问容器cocos2d::CCArray,不过它将会被废弃。 设计者们将cocos2d::Vector<T>设计为cocos2d::CCArray的替代品,所以建议优先考虑使用cocos2d::Vector<T>。 cocos2d::Vector<T>的一些操作的时间复杂度如下:

随机访问,O(1)将元素插入到尾部或者删除尾部的元素,O(1)随机插入或删除, O(n)模版参数

T - 元素类型

T的类型必须是继承自cocos2d::Object类型的指针。因为已经将Cocos2d-x的内存管理模型集成到了cocos2d::Vector<T>中,所以类型参数不能是其他的类型包括基本类型。内存管理cocos2d::Vector

cocos2d::Vector<T>类只包含一个成员数据:

_data的内存管理是由编译器自动处理的,如果声明了一个cocos2d::Vector<T>类型,就不必费心去释放内存。 注意:使用现代的c&#;&#;,本地存储对象比堆存储对象好。所以请不要用new操作来申请cocos2d::Vector<T>的堆对象,请使用栈对象。 如果真心想动态分配堆cocos2d::Vector<T>,请将原始指针用智能指针来覆盖。 警告:cocos2d::Vector<T>并不是cocos2d::Object的子类,所以不要像使用其他cocos2d类一样来用retain/release和引用计数内存管理。

基本用法

作者们用std::vector<T>的基本操作加上Cocos2d-x的内存管理规则来覆盖该模版原先的普通操作。 所以pushBack()操作将会保留传递过来的参数,而popBack()则会释放掉容器中最后的一个元素。 当你使用这些操作的时候,你需要特别注意这些受托管的对象,对于新手来说,这往往是陷阱。 警告:cocos2d::Vector<T>并没有重载[]操作,所以不能直接用下标[i]来获取第i位元素。cocos2d::Vector<T>提供了不同类型的迭代器,所以我们可以受益于c&#;&#;的标准函数库,我们可以使用大量标准泛型算法和for_each循环。 除了std::vector容器的操作之外,开发者们还加入许多标准算法诸如:std::find, std::reverse和std::swap,这些算法可以简化很多通用的操作。 要了解更多的api用例,可以参考Cocos2d-x 3.0beta的源码和压缩包里附带的例子。 下面是一些简单的例子:

输出:

最佳做法考虑基于栈的cocos2d::Vector<T>优先用于基于堆的当将cocos2d::Vector<T>作为参数传递时,将它声明成常量引用:const cocos2d::Vector<T>&返回&#;是cocos2d::Vector<T>时,直接返回&#;,这种情况下编译器会优化成移动操作。不要用任何没有继承cocos2d::Object的类型作为cocos2d::Vector<T>的数据类型。

eclipse cocos2dx Couldn&#;t load cocos2dcpp from loader -::.:E/AndroidRuntime():java.lang.ExceptionInInitializerError-::.:E/AndroidRuntime():atjava.lang.Class.newInstanceImpl(NativeMethod)-::.:E/AndroidRunti

cocos code ide 1.0.0 RC0 使用教程 本文转自:

cocos2dx3.x利用sokcet创建客户端和服务端 (三) 客户端:连接服务端boolconnectServer(constchar*serverIP,unsignedshortport);向服务端发送消息voidsendMessage(constchar*data,intcount);接受服务端数据的回调函数std::functionvoi

标签: cocos2d::Vector

本文链接地址:https://www.jiuchutong.com/biancheng/372588.html 转载请保留说明!

上一篇:perl数据库添加、删除、更新、查询操作例子(perl 获取数据库查询结果)

下一篇:eclipse cocos2dx Couldn't load cocos2dcpp from loader

  • 空壳公司如何报税
  • 企业所得税弥补亏损明细表怎么填写
  • 未达起征点的增值税怎么做账
  • 个税申报表中的基本养老保险怎么填
  • 以前年度损益科目核算业务
  • 员工个人部分所承担的社保会计分录怎么做
  • 填制凭证的内容通常包括
  • 管家婆进销存软件免费版
  • 应交税金的期末余额怎么算
  • 租赁植物费用
  • 企业未能实施个人所得税代扣代缴是否会罚款呢?
  • 材料暂估价比例
  • 印花税计算公式例子
  • 供热企业免税收入标准
  • 增值税专用发票抵扣期限
  • 增值税确认平台一直显示该网站出现问题
  • 处置的固定资产
  • 税收理财跟税收筹划有什么区别?
  • 长期股权投资用交印花税吗
  • 收到厂房租金要交税吗
  • 发票认证的三种方式
  • 坏账损失企业所得税
  • linux ctrl c和ctrl z
  • 企业债券和公司债券
  • 技术服务合同要盖骑缝章吗
  • win11右键菜单怎么恢复
  • php实现的任意进程函数
  • PHP:pcntl_wstopsig()的用法_PCNTL函数
  • 违约金列支
  • 会计准则新规
  • layuiadmin动态菜单
  • php wechat
  • 瑞士伯尔尼小镇
  • 固定资产备案有什么用
  • php获取文件夹大小
  • 职工教育经费能结转几年
  • 房地产代理公司资质证书
  • 帝国cms app
  • 不动产物权归属和内容的根据是什么?
  • centos8 mongodb
  • 帝国cms到底好不好
  • Sql Server 2005的1433端口打开局域网访问和进行远程连接
  • mysql基础操作命令
  • 个体户如何填报工商年报资金数额
  • 当月没生产有生产费用怎么结转
  • 原材料的采购成本包括哪些
  • 公司试驾车怎么开票
  • 退了的社保能申请回来吗
  • 财务费用在贷方表示增加还是减少
  • 怎样单方面注销手机卡
  • 发票边上的孔有什么用
  • 施工企业人工费控制措施
  • 销售一批产品给丙公司,该批产品标价200万yuan
  • 工资计入会计科目
  • 公司开具电子发票是否取消纸质发票开具
  • 利润分配审计案例
  • 如何判断企业处于什么阶段
  • 总账会计工作流程表
  • 记账报税属于会计什么职位
  • mysql的知识点
  • win7系统打开网页出现file not found
  • xp 指定的域不存在,或无法联系
  • ubuntu的软件
  • 苹果15手机价格和图片颜色
  • 使用linux常用命令
  • linux系统中文件权限分为哪三种
  • centos怎么安装
  • win8注销在哪里
  • linux怎么查看挂载点
  • Unity3D游戏开发引擎
  • js调用音频文件
  • 关于学习的名言
  • shell怎么创建用户
  • vue中使用js
  • 用nodejs做的项目
  • 安卓开发例子
  • 辽宁税务遴选
  • 如何在广东省电子税务局开发票
  • 国家税务总局服务中心
  • 杭州 国税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设