[Cocos2d-x v3.x]浅谈容器Map
来源:互联网 发布:引力时空扭曲的知乎 编辑:程序博客网 时间:2024/05/04 00:48
转载请注明来自:star特530的CSDN博客 http://blog.csdn.net/start530/article/details/19284301
本篇接着上一篇的容器继续唠叨,了解上一篇:http://blog.csdn.net/start530/article/details/19170853
既然Vector是对比Array,那么Map就对比Dictionary吧。
1、创建
- auto sp1 = Sprite::create("CloseNormal.png");
- sp1->setPosition(Point(100,100));
- this->addChild(sp1,1);
- auto sp2 = Sprite::create("CloseSelected.png");
- sp2->setPosition(Point(100,200));
- this->addChild(sp2,1);
- //创建容器
- Alpha:
- auto sp_dic = Dictionary::create();//创建一个字典
- beta:
- //建立一个关联容器map,第一个参数是string型的key,第二个参数是Sprite类的key值
- Map<std::string,Sprite*>sp_map;
2、将对象放入到容器中
- Alpha:
- sp_dic->setObject(sp1,"sp1");//将精灵放入字典中,第二个参数是精灵在字典中的key
- sp_dic->setObject(sp2,"sp2");
- beta:
- sp_map.insert("sp1",sp1);//将精灵放入容器中,第一个参数是key
- sp_map.insert("sp2",sp2);
3、取出容器中的元素
map是键-值对的集合。map类型通常可以理解为关联数组,Vector容器可以使用类似数组a[0],a[2]这种下标的方式获得容器内的元素,Map容器也是可以通过下标的方式获取,但下标是指元素特定的键,而不是通过在数组中的位置。
- Alpha:
- auto sp = (Sprite*)sp_dic->objForKey("sp1");//取出sp1
- beta:
- auto sp = sp_vec.at("sp1");//通过键值获得sp1
4、其他功能
- auto sp5 = sp_map.at("sp1");//通过key取出sp1
- sp_map.insert("10",sp5);//再将sp1 以三个key值的方式存入map
- sp_map.insert("20",sp5);
- sp_map.insert("30",sp5);
- auto _key = sp_map.keys(sp1);//获得sp1对应的key值
- for(const auto&e : _key)
- {
- //C++ 11 后新增的这种for 功能,不懂的可以去百度下
- CCLOG("_key is %s",e.c_str());//输出sp1 对应的key值(有四个,分别是:sp1,10,20,30)
- }
- auto find_sp = sp_map.find("10");//通过find()查找key为“10”的pair类型。
- auto sp6 = find_sp->second;//键对应的对象
- std::string find_str = find_sp->first;//键
- CCLOG("sp6 key value is %s",find_str.c_str());//打印出键
- sp6->runAction(MoveBy::create(0.3f,Point(200,0)));//让sp6做运动
0 0
- [Cocos2d-x v3.x]浅谈容器Map
- [Cocos2d-x v3.x]浅谈容器Vector
- [Cocos2d-x v3.x官方文档]cocos2d::Map 分享0
- Cocos2d-x容器介绍(cocos2d::Map)
- Cocos2d-x 容器(三) Map
- Cocos2d-x--使用Cocos2d-x v3.0.0
- [Cocos2d-x v3.x]cocos2d::Value
- [Cocos2d-x v3.x]cocos2d::Vector
- cocos2d-x v3.3 ActionInterval
- Cocos2d-x v3.9发布
- Cocos2d-x V3.1参考资料
- [Cocos2d-x v3.x]序列帧动画
- Cocos2d-x官方中文文档 v3.x
- [Cocos2d-x v3.x]序列帧动画
- cocos2d-x V3.x内存管理分析
- cocos2d-x V3.x内存管理分析
- Cocos2d-x V3.x内存管理分析
- [Cocos2d-x v3.x官方文档]cocos2d::Value
- UILabel自适应调试 UITableViewCell自适应高度
- jetty的安装使用图文教程
- Oracle RMAN的概述和配置
- Andy's First Dictionary - UVa 10815 丧病的测试数据
- IOS_SQLite_单例宏_NSArray+Log
- [Cocos2d-x v3.x]浅谈容器Map
- 用php实现词法分析器
- Linq to DataTable 合并结构相同的 个DataTable 且已重复的行不合并
- iOS的KVO使用和轻量级封装
- Java抽象类
- canvas 滤镜之灰度效果
- 利用数组来优化if else ---谈谈数组的本质
- LINQ Intersect 自定义规则
- 黑马程序员—JAVA基础之I/O