位置: 编程技术 - 正文

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

  • 税务局退税多久到账
  • 民办非企业可以上市吗
  • 企业购置节能节水专用设备
  • 保修期内免费维修
  • 主营业务收入计入什么明细账
  • 零税率购房发票
  • 开店卖蔬菜
  • 业务招待费怎么调整应纳税所得额
  • 洒水车属于免税车辆吗?
  • 航天信息服务费280元会计处理
  • 产值等于营业额吗
  • 出口50万货物退多少税
  • 小微企业 2021
  • 免抵退税申报表主表
  • 工程已验收,质量问题怎么解决
  • 华为分享的文件在电脑哪个文件夹
  • 车辆购置税如何计算器
  • 如何理解应交税费未交增值税
  • runservice.exe - runservice是什么进程 有什么用
  • 若依框架自动生成代码
  • 三七粉的功效与作用及正确吃法
  • 存货分类账目录填写样本图片
  • loaddriver.exe是什么病毒
  • mac 快速切换输入法
  • 税收筹划的原则包括
  • 工程竣工的条件是什么
  • 外贸企业申报出口退税的期限
  • 什么是技术服务工程师
  • 来料加工的账务处理
  • curl error6
  • 提示框架
  • github ci/cd
  • php 电子签名
  • thinkphp if
  • 无纸化的好处和坏处
  • 企业所得税报表怎么更正
  • 预收账款的借贷方向是加还是凿
  • 垃圾处理费计入办公费用吗
  • mysql中事务的作用
  • python logger
  • SQL server 2008安装程序遇到以下错误 sku
  • 印花税计税依据怎么算
  • 以前年度损益调整会计分录
  • 合同资产和合同负债的区别
  • 企业预缴增值税附加税率
  • 公司担保无效的后果
  • 帮别人维修东西怎么开票
  • 税控盘会计分录怎么做
  • 工厂的委托加工怎么写
  • 纳税人和负税人区别通俗易懂
  • mysql修改表结构的命令
  • sql2000 sql2008
  • windows帐户登录
  • mac电脑快速查询
  • utilman.exe - utilman是什么进程
  • linux使用范围
  • win10 2020h1
  • windows 8
  • win10添加开机启动项
  • cocos2dx AudioEngine初体验,音效播放结束判断测试
  • JavaScript浏览器打开
  • unity lightmap uv
  • jquery对动态生成的进行操作
  • 安卓 unity
  • linux shell语句
  • react native usestate
  • 批处理命令不允许用户在文件夹内的文件
  • linux禁止所有用户登录
  • 整理的什么
  • 如何安装python环境安装包
  • javascript原型
  • 掌上税务app
  • 税务系统更新不能开发票
  • 房产交契税网上可以交吗
  • 供暖企业所涉及的行业
  • 国家税务局网上江苏电子税务局官网
  • 房产税季度缴纳还是月度
  • 工会经费征收范围规定
  • 2019年十堰市高中录取分数线
  • 船舶吨税案例分析
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设