位置: 编程技术 - 正文

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

  • 农产品加工企业怎样申请营业执照?
  • 不超45万是含税还是不含税
  • 快递公司增值税怎么算
  • 专用增值税发票和普通发票区别
  • 工资薪金所得和全年一次性奖金
  • 分支机构是不是需要设立账簿
  • 临时设施费怎么结算
  • 价内税是指
  • 一台设备分期开票数量
  • 主营业务收入包括哪些内容
  • 库存品种
  • 子公司给母公司开票
  • 个人承包经营所得是什么意思
  • 非金融机构定义
  • 运输企业营改增
  • 附加税没有计提会计分录
  • 累计折旧要结转到本年利润吗
  • 企业营业利润为负的原因有哪些
  • 国内废钢贸易需要资质吗
  • 土地增值税通过什么科目核算
  • 企业职工集资款的认定标准
  • 应收账款借贷方向表示什么意思
  • 如何计算劳务费个人所得税
  • 个人独资企业公账转私账
  • 全网最详细的破解卡密软件教程[2021首发]
  • 货运代理开票
  • 前端毕业设计项目
  • 计算所得税费用公式excel
  • 专项储备怎么理解
  • 专项应付款转资本公积需要什么附件
  • vue3.0优点
  • php十进制转二进制算法
  • php获取长度
  • php设置中文
  • 微信多开使用方法
  • head命令中表示输出文件前5行的参数是
  • 弥补以前年度亏损最多几年
  • logstash gsub
  • 实收资本与资本公积之和小于实收资本
  • 电子承兑汇票承兑后几天到账
  • 固定资产增加
  • 关于职工薪酬的确认和计量下列说法中不正确的是
  • 主营业务成本计入成本类账户吗
  • 押金抵货款怎样写协议
  • 暂估应付账款的科目编码
  • 薪金的定义
  • 医院药品过期放多久
  • 记账凭证原始凭证回单的粘贴顺序
  • 可持续增长率和内部增长率的区别
  • 什么是盈余公积和资本公积的区别
  • mysql 元数据管理
  • 微信公众平台在哪里打开
  • windows注册表简单应用
  • 新一代win10
  • win8系统连接不了网络
  • sun solaris 8何启用telnet ftp 功能
  • win10 记笔记
  • win7系统打不开网络和共享中心
  • linux修改系统日期命令
  • 物联网1.0 2.0 3.0
  • mac怎么共享网络给iphone
  • scrtkfg.exe - scrtkfg是什么进程 有什么用
  • win7系统咋样
  • js如何将毫秒转换为日期
  • Extjs中RowExpander控件的默认展开问题示例探讨
  • 批处理文件是脚本吗
  • python选择器
  • js for循环给数组赋值
  • python生成矩阵的方法
  • nodejs客户端程序开发
  • unity获取当前位置
  • zigzag源码
  • js点击表格行获取当前行信息
  • js设置图片边框
  • 用javascript
  • javascript基本语句
  • 地税网上预约
  • 江苏省常州市金坛区茅山风景区
  • 登录上海电子税务局找不到税务数字帐户
  • 租赁发票交多少税费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设