Cocos2d3.0话说ValueMap的一般用法

ValueMap的作用和ValueVector一样,只能存放数据类型的元素。其他不多说看,直接看一些常见的使用:

1、往ValueMap中添加一个元素:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. Value a(10);  
  2. ValueMap star_map;  
  3. star_map.insert(map<std::string,Value>::value_type("star",a));  
上方代码是将Value类型( 实际上是整型 )的变量a放入到ValueMap容器中,这里我使用map容器中用到的insert方法。
a在ValueMap容器中对应的key为" star "。
不过这种方法很麻烦有木有!
这里的map<std::string,Value>::value_type 是一个新创建的pair对象,将直接插入到map容器中。谨记value_types pair<const K,V>类型的同义词,K为键类型,V是键所关联的值的类型。
传递给insert的实参相当笨拙,可用两种方法简化:
1)使用make_pair
[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. star_map.insert(make_pair("star",a));  
2)使用typedef
[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. typedef map<std::string,Value>::value_type valType;  
  2.     star_map.insert(valType("star",a));  

当然了,上面这种方法还是有点麻烦,一点都不爽快,你问还有没有更直接的办法?当然有:
[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. star_map["star"] = a;  
这样就可以了,"star"就是键名称,a就是键值。
够方便吧?!快!准!狠!

2、读取ValueMap中的元素

我们就说上面的那个 a 吧。将其从star_map中读取出来,怎么在star_map中找到它呢?很容易,找到a对应的键就可以啦。
[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. Value a = star_map["star"];  
这样就将a给取出来了,容易吧。我们都知道a实际上是个整型,所以我们在取出a时也可以直接将其转成整型,代码如下:
[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. int a = star_map["star"].asInt();  
OK;

尊重原创,转载请注明来源:http://blog.csdn.net/star530/article/details/38025749
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值