话说ValueMap的一般使用

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


1、往ValueMap中添加一个元素

1
2
3
Value a = 10;  
ValueMap star_map;  
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

1
star_map.insert(make_pair( "star" ,a));


2)使用typedef

1
2
typedef  map<std::string,Value>::value_type valType;  
star_map.insert(valType( "star" ,a));


当然了,上面这种方法还是有点麻烦,一点都不爽快,你问还有没有更直接的办法?当然有:

1
star_map[ "star" ] = a;

这样就可以了,"star"就是键名称,a就是键值。


2、读取ValueMap中的元素

我们就说上面的那个a 吧。将其从star_map中读取出来,怎么在star_map中找到它呢?很容易,找到a对应的键就可以啦。

1
Value a = star_map[ "star" ];


这样就将a给取出来了,容易吧。我们都知道a实际上是个整型,所以我们在取出a时也可以直接将其转成整型,代码如下:

1
int  a = star_map[ "star" ].asInt();


好了,就说这些,更多细节请参考《ValueVector和Vector不得不说的故事


来源网址: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、付费专栏及课程。

余额充值