打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
cocos2d
c
cocos2d-x中的CCArray
2013-11-05 16:29:41     我来说两句       作者:a3895177
收藏   
我要投稿
先来认识下CCArray的属性:
[cpp]  
/** 创建一个数组 */  
static CCArray* create();  
/** 通过一些对象创建一个数组 */  
static CCArray* create(CCObject* pObject, ...);  
/** 创建一个数组,并将对象放进去 */  
static CCArray* createWithObject(CCObject* pObject);  
/** 创建一个数组,设定估计容量 */  
static CCArray* createWithCapacity(unsigned int capacity);  
/** 同一个一个数组创建一个数组 */  
static CCArray* createWithArray(CCArray* otherArray);  
/** 
 @brief   通过文件导入一个数组 
 @param   pFileName  一个*.plist格式的文件 
 @return  返回CCArray数组指针 
 */  
static CCArray* createWithContentsOfFile(const char* pFileName);  
/* 
 @brief 同上, 但是不会调用autorelease, 所以调用之后需要执行release(). 
 */  
static CCArray* createWithContentsOfFileThreadSafe(const char* pFileName);  
/** 初始化数组 */  
bool init();  
/** 通过一个对象初始化数组 */  
bool initWithObject(CCObject* pObject);  
/** 通过一些对象初始化数组 */  
bool initWithObjects(CCObject* pObject, ...);  
/** 初始化数组,设定估计容量 */  
bool initWithCapacity(unsigned int capacity);  
/** 通过一个数组初始化数组 */  
bool initWithArray(CCArray* otherArray);  
// 查询数组函数  
/** 返回数组元素的数量 */  
unsigned int count() const;  
/** 返回数组的估计容量 */  
unsigned int capacity() const;  
/** 通过对象去获得这个对象在数组中的下标,如果数组中没有这个对象会返回UINT_MAX */  
unsigned int indexOfObject(CCObject* object) const;  
/** 通过一个正确的下标去获得一个元素 */  
CCObject* objectAtIndex(unsigned int index);  
/** 返回最后一个元素 */  
CCObject* lastObject();  
/** 返回一个随机元素 */  
CCObject* randomObject();  
/** 判断数组是否包含该对象 */  
bool containsObject(CCObject* object) const;  
/** 从 1.1 之后,两个数组进行对比 */  
bool isEqualToArray(CCArray* pOtherArray);  
// 添加函数  
/** 添加一个对象 */  
void addObject(CCObject* object);  
/** 添加数组所有元素 */  
void addObjectsFromArray(CCArray* otherArray);  
/** 插入一个对象到一个正确的下标位置 */  
void insertObject(CCObject* object, unsigned int index);  
// 删除函数  
/** 删除最后一个元素 */  
void removeLastObject(bool bReleaseObj = true);  
/** 删掉数组中形参的元素 */  
void removeObject(CCObject* object, bool bReleaseObj = true);  
/** 通过一个正确的下标去删除元素 */  
void removeObjectAtIndex(unsigned int index, bool bReleaseObj = true);  
/** 通过一个数组去删除元素 */  
void removeObjectsInArray(CCArray* otherArray);  
/** 删除所有元素 */  
void removeAllObjects();  
/** 通过一个快速方式去删除元素 */  
//快速方式就是:删除这个元素之后,将最后一个元素填充到删除位置。这样会打乱顺序,慎用  
void fastRemoveObject(CCObject* object);  
/** 通过一个快速方式去删除下标位置的元素 */  
void fastRemoveObjectAtIndex(unsigned int index);  
//  重新安排内容  
/** 交换元素 */  
void exchangeObject(CCObject* object1, CCObject* object2);  
/** 交换制定的两下标的元素 */  
void exchangeObjectAtIndex(unsigned int index1, unsigned int index2);  
/** 用一个对象去替换指定下标的元素 */  
void replaceObjectAtIndex(unsigned int uIndex, CCObject* pObject, bool bReleaseObject = true);  
/** 翻转数组 */  
void reverseObjects();  
/* 缩小数组,让数组占用的内存符合元素的数量 */  
void reduceMemoryFootprint();  
下面来介绍CCArrary几个可以用来偷懒的预编译:
[cpp]  
#define CCARRAY_FOREACH(__array__, __object__)  //遍历所有元素,后面会举例  
#define CCARRAY_FOREACH_REVERSE(__array__, __object__)     //反序遍历元素  
#define CCARRAY_VERIFY_TYPE(__array__, __type__)   //判断数组元素是否属于某类对象  
#define arrayMakeObjectsPerformSelector(pArray, func, elementType)//让数组中所有元素去执行某一个函数  
#define arrayMakeObjectsPerformSelectorWithObject(pArray, func, pObject, elementType)//让数组中所有元素去执行某一个函数 ,带参数  
举例:
[cpp] 
CCArray* arr = CCArray::create();  
CCObject* pNode;  
CCARRAY_FOREACH(arr,pNode)  
{  
    pNode->retainCount();  
    //遍历arr数组,让每一个元素执行retainCount()函数  
}  
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C语言归并排序详解
计算机二级
指针与数组
拼图算法分析...
数据结构一:链表(C++代码)
【C 】数组讲解之一维数组
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服