位置: 编程技术 - 正文

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

  • 税收减免是否属于收入
  • 可以税前扣除的利息费用有哪些
  • 城市基础设施配套费减免
  • 一张记账凭证写两个分录
  • 增值税税率调整为9%
  • 进项税发票认证期限多长时间
  • 未达起征点的增值税怎么账务处理
  • 财政拨款税收政策
  • 小微企业免交增值税,月末结转到营业外收入吗
  • 母公司向子公司出售不动产要征收增值税吗
  • 低值易耗品摊销什么意思
  • 被代持股份怎么退出
  • 促销赠品的会计处理
  • 试分析营改增的重大意义
  • 农村承包土地能卖土吗
  • 企业所得税核定征收怎么计算
  • 支票只能同城吗
  • 利润表本月金额怎么算
  • 红字发票信息表是销方还是购方开
  • 公司对外租赁
  • 先征后退的增值税
  • 工厂院子里的地图怎么画
  • 累计专项扣除比别人的多
  • 如何解决windows7台试电脑蓝屏问题
  • 分公司特征表述正确的是
  • 未开票收入缴纳增值税怎么冲减补开发票
  • phpurl编码
  • 网赚项目——Youtube获取高流量的技巧
  • vue项目打包后还能修改吗
  • php日期计算器
  • pycharm vue
  • 公司想减少注册资本流程
  • 替票报销开什么发票
  • 汇兑损益计算器
  • 账面价值是历史价值吗
  • 应计入财务费用的科目是
  • 准予扣除的业务宣传费
  • 年报数据和四季度数据一样吗
  • 在php中声明变量时,变量名称以什么符号开头
  • php显示当前时间
  • css入门经典
  • SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用方法
  • 润滑脂开票属于哪一类
  • 代收代缴水费收不上来怎么办
  • 什么是备抵类账户
  • 合作社收到政府补贴会计分录
  • 购销合同印花税计税依据
  • 应交税费科目的核算内容
  • 会计人要求
  • 明细与发票
  • 房屋免租期的房子能卖吗
  • 个人应如何进行社会实践
  • 退货收到红字发票怎么办
  • 本年利润要结转吗为什么
  • 应收账款收不回来怎么处理比较好
  • 小规模开票额度有限制吗
  • 同一个法人的两家企业可以进行互相开票吗
  • 关于外贸企业出口的规定
  • 本年利润为什么是负数
  • 小企业如何建立风险管理制度
  • 案例如何分析
  • 阿里云 centos7 替换
  • 屏幕右下角显示A2
  • win8系统升级到win 10
  • win7使用mbr还是guid
  • centos7图形安装
  • linux基金会什么时候成立
  • linux判断程序是否运行
  • win8 蓝牙
  • 查看rpm包含的内容
  • 如何使用maven
  • 批处理判断一个文件是否存在
  • cocos2dx schedule
  • node一次执行多个文件
  • 批处理 输入密码
  • 如何获得select选中的值
  • unity shader lod
  • 国家税务总局2019年45号公告解读
  • 广西南宁税务12366
  • 发票代码如何查真伪
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设