cocos2dx-3.0(13)------容器Vector和Map

~~~~我的生活,我的点点滴滴!!           

          参照了star特530的blog,大家不要拍砖!对于3.0以后就不会在用CCDictionary / CCArray等之类的容器了,换成标题上那两种了,并且遍历引入了c++11的for的新方法,还是很方便的!

1. for的新用法

for语句是C++11新提供的一种语句,它的形式如下:
for(declaratio : expression)
{
//statement;
}
expression是一个对象,例如Vector这种容器,declarationo负责定义一个变量,该变量每次循环都会被初始为expression中的下一个元素之。
那么什么类型的对象可以使用范围for语句呢?拥有能返回迭代器的begin和end成员。

下面用std::string来举个例子:使用范围for语句把string对象中的字符每行一个输出出来:

std::string str("this is test code");
//每行输出str中的一个字符
for(auto c : str)		//对于str中的每个字符
	cout << c << endl;	//输出当前字符,后面紧跟一个换行符
通过使用auto来确定c的类型(c的类型为char)。每次循环时,str的下一个字符被拷贝给c。

2. cocos2dx 中Vector遍历

Vector<Sprite*> sp_vec;//创建一个容器
sp_vec.pushBack(sp);//将俩精灵扔进去
sp_vec.pushBack(sp2);
sp_vec.pushBack(sp3);

for( auto sp_obj : sp_vec)
{
	sp_obj->runAction(MoveBy::create(3.0f,Point(250,250)));//每次for循环都从sp_vec容器中取出一个精灵
}

3. cocos2dx 中Map遍历

Map<std::string,Sprite*> sp_map;//创建一个Map容器,键值分别为string型与Sprite类型
sp_map.insert("sp",sp);//将sp扔进去,
sp_map.insert("sp2",sp2);
sp_map.insert("sp3",sp3);

for( auto e : sp_map)
{
	auto sp_obj = e.second;//e.first获得的是e的键值,e.second获得对象
	sp_obj->runAction(MoveBy::create(3.0f,Point(250,250)));
}







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值