位置: 编程技术 - 正文

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

  • 已认证进项税额怎么结转
  • 增值税普通发票查询真伪
  • 什么是税额和计税金额
  • 农业合作社享受优惠政策
  • 建筑企业利润率低的原因
  • 公司刻一套章子多少钱
  • 小规模公司核定增收税可以公账直接打给法人吗?
  • 收回员工社保入什么科目
  • 公司发放节日礼品
  • 公司开出的经济补偿金可以税前扣除吗
  • 无形资产摊销表模板
  • 无形资产管理的基本流程包括无形资产的
  • 贸易公司收到货款会计分录
  • 小规模企业现金规定最新
  • 出口货物国际运输流程图
  • 办公室装修计入什么科目里
  • 房产中介如何收取中介费
  • bios设置的完整说法
  • 穿越火线改名卡买完了怎么用
  • Linux系统中Squid代理服务器配置全过程解析
  • 为什么在监狱拉屎都拉不方便
  • 城镇土地使用税税率
  • php的总结
  • 外贸企业进项税额转出
  • 阿圭罗来自哪里
  • 认缴制下实收资本需要验资吗
  • php各个框架的优缺点
  • thinkphp yii
  • cloa框架
  • 股东分红应该在哪个科目
  • 基于强化学习的智能机器人路径规划算法研究(附代码)
  • thinkphp版本区别
  • 无形资产有进项税吗
  • php开启mysql扩展
  • mkfifo命令
  • tar -xvf命令
  • 拍卖抵押车 卖不出去怎么办
  • 专利技术的增值税
  • 单位为职工订做活动通知
  • 基本户往一般户转钱有限制吗
  • mac的配置
  • 企业发生的汇兑差额
  • 固定资产清理是三栏式还是多栏式
  • 只有收据没有发票怎么入账
  • 个税返还手续费怎么做账
  • 外部审计的构成
  • 现金支付无发票怎么报销
  • 库存商品过期了还能用吗
  • 技术服务费是否可以开具专票
  • 跨月发票作废怎么做会计分录
  • 物业公司代收代付租金要开发票吗
  • 无形资产如何摊销公式
  • 银行开手续费发票怎么做账
  • 一般纳税人网上申报流程
  • 回购股票注销股票怎么办
  • 冲销以前年度费用会计分录
  • 公司变更地址后需要做哪些事情
  • 外商投资企业和外商独资企业
  • 索引的基本原则
  • mysql自动清理数据
  • win2003出现各种硬件故障问题时的处理方法
  • win8.1 升级
  • 无线网络找不到证书
  • windows系统同时按下CTRL+ALT+DEL键没有弹出任务管理器的解决方法
  • win7虚拟内存如何转移到D盘
  • win10系统的设备管理器在哪里
  • yum could not resolve host
  • win8怎么恢复出厂设置找不到恢复环境
  • nodeJS文件操作自动创建目录
  • vue js 页面代码分离
  • ECLIPSE编辑器
  • 安卓listview添加数据
  • 从重置手
  • javascript异步编程
  • 地税编码哪里查
  • 合作社的税率是多少
  • 江西省税务总局官网
  • 电子税务局网页版
  • 法规处职责要点和底线清单
  • 公司如何制定制度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设