位置: 编程技术 - 正文

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

  • 缴纳购销合同印花税怎么算
  • 营业外收入要交企业所得税吗
  • 总分公司报税有哪些注意事项
  • 税务行政复议是税务行政复议机关的裁决活动
  • 什么公司可以核算成本
  • 工资的计提与结转怎么算
  • 员工事假扣工资怎么做账
  • 无形资产有合同约定,怎么摊销?
  • 未交增值税借方余额表示什么意思
  • 股权转让如何避免印花税
  • 招标代理公司转让
  • 行政单位的财务报告包括财务报表和财务情况说明书
  • 建筑安装企业成本费用包括哪些
  • 营业外收入用不用交企业所得税
  • 公司用现金发放工资在税法上合规吗
  • 三方扣款fd6
  • 营改增的重点是什么
  • 劳务派遣公司是干嘛的
  • 公司发票限额按什么计算
  • 外汇网上申报操作流程图
  • 现金折扣税务会计
  • 固定资产盘亏盘盈账务处理
  • 使用时间长但金币不见了
  • 工会经费的优惠政策2020
  • 一般纳税人资格登记表
  • 外贸 代理
  • php二维数组遍历
  • js时间格式转换时间戳
  • php数组函数,选班长
  • php配置文件的名字是
  • 园林绿化企业设立的条件和程序
  • 收到银行承兑汇票会计分录
  • 企业政策性拆迁资产重置算支出吗
  • 冰岛北部内陆景观有哪些
  • 老生常谈含义
  • php运用
  • 腾讯云验证码服务
  • mkisofs命令
  • 企业的业务招待费是否可以随意开支
  • 合伙结算转借款
  • 银行账号未备案怎么解决
  • 双抬头发票认证
  • 开基本户一定要法人身份证吗
  • mongodb在windows上的安装
  • 机械租赁费税率是多少
  • 企业所得税放入什么科目
  • 酒店成本控制有哪些
  • 新领的发票怎么导入uk开票系统
  • 企业的业务招待费属于什么费用
  • 土增清算可以扣除项目
  • 收到项目资本金怎么入账
  • 资本公积的核算维度是什么
  • 销售款退回会计分录
  • 车辆保险费算什么费用
  • 预交企业所得税税率
  • 待认证进项税额期末怎么办
  • 公司改名后发票怎么开
  • 年末本年利润怎么转到未分配利润
  • sqlserver 断开数据库连接
  • win10怎么获取
  • centos init
  • linux acl设置
  • win7 显示日期
  • win8如何升级到win10系统版本
  • win10的显示
  • 输入法不跳出中文
  • ExtJs事件机制基本代码模型和流程解析
  • 女鬼照片
  • vim tagbar
  • html中如何写java代码
  • 如何使用nodejs
  • Python工程师面试题 与Python Web相关
  • python中scipy.stats
  • 原始凭证审核会计科目吗
  • 江西低保查询系统
  • 代扣社保代扣公式是什么
  • 深圳国税电子税务局
  • 税局如何查账
  • 皖事通新农合缴费征收方式是什么?
  • 蓬莱市税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设