前面的博文中我们提到了一个词典类CCDictionary,它和数组类CCArray共称Cocos2d-x两大常用数据结构,因为在项目中数组类
CCArray我们使用的实在是太多了,因此这里补充一篇关于CCArray深入分析的博文,其中提到了一个很多新手可能没有使用过的类ccCArray类,CCArray内部其实都是通过调用该类实现的,值得我们注意。
CCArray是从cocos2d中移植过来的,类似于Apple的NSMutableArray,但是比NSMutableArray更为的好用。要注意的是虽然CCArray和CCDictionary可以管理cocos2d-x中绝大多数的类,但是仍然无法替代STL库,STL库更为强有力。
1.API
先看一下CCArray可以帮我们做什么。
1.1.创建
1
2
3
4
5
6
7
8
9
10
|
static
CCArray* create();
CCArray* create(CCObject* pObject,…);
CCArray* createWithObject(CCObject* pObject);
CCArray* createWithCapacity(unsigned
int
capacity);
CCArray* createWithArray(CCArray* otherArray);
|
6
//添加一个元素
void
addObject(CCObject* object);
addObjectsFromArray(CCArray* otherArray);
insertObject(CCObject* object,unsigned
index);
|
10
11
12
13
14
//移除最后一个元素
removeLastObject(
bool
bReleaSEObj =
true
);
removeObject(CCObject* object,
);
removeObjectAtIndex(unsigned
index,monospace!important; font-size:1em!important; min-height:inherit!important">);
removeObjectsInArray(CCArray* otherArray);
removeAllObjects();
fastRemoveObject(CCObject* object);
fastRemoveObjectAtIndex(unsigned
index);
|
14
15
16
//返回元素个数
unsigned
count()
const
;
capacity()
;
indexOfObject(CCObject* object)
;
CCObject* objectAtIndex(unsigned
index);
CCObject* lastObject();
CCObject* randomObject();
containsObject(CCObject* object)
;
isEqualToArray(CCArray* pOtherArray);
|