您的位置:首页 > 理论基础 > 数据结构算法

cocos2d-x3.0数据结构

2015-07-29 08:10 211 查看

1、cocos2d::Vector


1、头报价"CCVector.h"头文件。
2、保存的数据类型必须是cocos2d::Ref的子类。
3、实现是动态加入数据集合即链表。主要的使用方法 说明一下加入节点时,节点会被retain,删除节点时会被resase。

自己实现了内存管理
Vector<Sprite*> vector; //声明
auto sp0 = Sprite::create();
vector.pushBack(sp0);  //加入节点
vector.pushBack(sp0);
vector.pushBack(sp0);  //工加入了三个节点
int length = vector.size(); //获取节点个数
vector.erase(vector.begin()+1); //删除第二个节点 vector.begin()为開始节点
vector.clear(); //删除全部节点


4、说明下std::vector,基本使用跟cocos2d::Vector差点儿相同,主要有以下却别,一个V大写一个v小写,td::vector引用头文件
#include "vector",只是std::vector,加入节点时不会retain,删除时也不会resase。

可是它能够存不论什么类型比方:int、string等。

2、cocos::Map


1、引用头文件"CCMap.h"头文件。
2、他们是数据key、value相应集合,key能够是随意类型,value必须是cocos2d::Ref的子类。
3、基本用法 加入节点时,value节点会被retain,删除节点时value会被resase
Map<int,Sprite*> tage; //声明
auto sp0 = Sprite::create();
tage.insert(0,sp0);  //加入节点
tage.size();// 获取节点个数
(Sprite*)(tage.at(0)); //依据key获取value
tage.erase(0); //依据key删除value
tage.clear(); //删除全部


4、遍历全部节点
std::vector<int> mapKeyVec;
mapKeyVec = tage.keys();
for(auto key : mapKeyVec)
{
<span style="white-space:pre">	</span>tage.at(key);
}


http://blog.csdn.net/st75033562/article/details/29574939





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: