位置: 编程技术 - 正文

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

  • 研发费用加计扣除75%还是100%
  • 小规模纳税人开专票税率是1%还是3%
  • 免税收入怎么做账务处理
  • 免税收入是什么票据类型
  • 母公司和子公司可以一起投标吗
  • 房屋产权出典的由承典人作为房产税纳税义务人
  • 发票丢了还能再开么
  • 个税申报没填过租房信息,却有怎么回事
  • 个人开劳务发票是否需要交纳个人所得税呢?
  • 投资活动购建固定资产
  • 金融服务利息
  • 房贷可以抵个人所得税吗
  • 服务行业有哪些工作
  • 退税上传,申报文件上传失败
  • 差额纳税账务处理
  • 增值税报表上填写什么
  • 企业当年度增值税税率
  • 工程哪些材料可以做
  • 给子公司拨款怎么记账
  • 已收发票是什么意思
  • 总账每个月都要结账吗
  • 全资的子公司
  • 权益法核算的投资收益要做递延所得税吗
  • 长期闲置的机器叫什么
  • mac电脑新手使用
  • php页面传值
  • deepin隐藏分区
  • adv举例
  • taskhost window
  • 无形资产初始计量的表述
  • 收到业绩补偿会扣税吗
  • 修建污水处理厂施工方案包括哪些内容
  • 营业外收入的会计要素
  • 简单了解航天员的生活
  • 企业办理税务
  • yolov5画框重复、大框包小框问题解决,c++、python代码调用onnx
  • continue命令必须与locate
  • php 模拟post
  • 小微企业会计制度是什么
  • 财务费用为负的意思
  • 尚未报送年度会计报表
  • python怎么用?
  • 一个残疾证一年单位免多少税2023
  • 房地产企业收到定金是否要预缴税款
  • sql2005 数据同步方法
  • sqlserver验证方式
  • 小规模纳税人企业所得税怎么算
  • 政府会计制度中累计盈余怎么计算
  • 火车票丢了怎么办
  • 独立法人的全资子公司
  • 原材料报废卖掉会计分录
  • 商业会计怎么算主营业务成本
  • 认证固定资产发票如何入账
  • 投资主体将其拥有的货币或产业资本
  • 个税多缴了纳税人怎么办
  • 汇算清缴后多交的企业所得税能退吗
  • 租入固定资产改良支出属于收益性支出吗
  • 会计应该怎么做职业规划
  • 公司借款流程
  • mysql(master/slave)主从复制原理及配置图文详解
  • Win2008 R2 mysql 5.5 zip格式mysql 安装与配置
  • win8系统如何安装软件
  • ubuntu20.04.2安装
  • windows 8.1 build 9600
  • centos7安装MySQL8.0
  • windows xp iis安装
  • linux修改文件权限
  • 不经过回收站直接删除文件的操作是
  • javascript html5摇一摇功能的实现
  • [置顶]电影名字《收件人不详》
  • unity读取文本文件
  • python装饰器与递归算法详解
  • jquery属性选择器,选取所有带href
  • pjblog修改技巧汇总
  • android设计模式书籍
  • python爬取电视剧
  • 装饰装修公司需要什么
  • 工资6200要交多少个人所得税
  • 主营业务收入占比高说明什么
  • 一般纳税人企业所得税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设