COCOS2D-X用到的部分容器简单用法

1.vector

#include <vector>
	std::vector<int> str;
	// 插入到末尾
	str.push_back(111);
	str.push_back(222);
	str.push_back(333);
		CCLOG("-------------------------");
	// 注意i是一个返回的迭代器,str.end()[0]指向的是str迭代器后面的位置,而不是str最后的元素
	for(vector<int>::iterator i = str.begin(); i<str.end(); i++)
		CCLOG("%d",i[0]);
	//删除元素
	str.erase(str.end() - 1);

	for(vector<int>::iterator i = str.begin(); i<str.end(); i++)
			CCLOG("%d",i[0]);

		CCLOG("-------------------------");

输出:

-------------------------

111

222

333

111

222

-------------------------

2、CCArray

    //ccarray
	CCArray * nodes ;
   //注意CCArray里面的元素必须继承CCObject
    CCNode *node =  new CCNode();
	//插入
	nodes->addObject(node);
	//取出
	unsigned int key = 0; 
	//key start form 0
	CCNode *temp = (CCNode *)nodes->objectAtIndex(key);
    //删除
	nodes->removeObject(temp);
》CCArray的好处比较好用,自动释放废弃元素内存,比较符合java程序员的程序员

3、map

#include <map> //注意,STL头文件没有扩展名.h
	//定义
	 std::map<int, CCNode *> mapRecord;
	 //插入
	 mapRecord.insert(map<int, CCNode *> :: value_type(key, value));
	
         //取出,先find一下看有没有,直接用mapRecord[1]如果没有会自动插入一个空的条目
	 CCNode *node;
	 //定义一个条目变量(实际是指针)
        std::map<int, CCNode *> ::iterator it= mapRecord.find(key);
	 if(it == mapRecord.end()) {
		 //没找到
		 node = NULL;
	 }
	 else {
		 //找到		
		 node = it->second;
	 }
	 //删除
/*
	 iterator erase(iterator it); //通过一个条目对象删除 
	 iterator erase(iterator first, iterator last); //删除一个范围 
	 size_type erase(const Key& key); //通过关键字删除 
	 clear()就相当于 enumMap.erase(enumMap.begin(), enumMap.end());*/

	 std::map<int, CCNode *>::iterator iter = mapRecord.find(key); 
	 if (iter != mapRecord.end()) 
	 { 
		 mapRecord.erase(iter); 
		 return true;
	 } 
	 else 
	 { 
		 return false;
	 }


map这里有个博客讲的比较全 :http://wmnmtm.blog.163.com/blog/static/38245714201072310131130/



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值