这次就说ValueMap吧,别问我这是什么,自己去Value.h里看!当然了,在这个谷歌“已死”的年代,不建议你去百度,因为百度上根本搜不到和ValueMap有关的词,不信你试试,反正我瞎说的。
ValueMap的作用和ValueVector一样,只能存放数据类型的元素。其他不多说看,直接看一些常见的使用:
1、往ValueMap中添加一个元素:
- Value a(10);
- ValueMap star_map;
- star_map.insert(map<std::string,Value>::value_type("star",a));
a在ValueMap容器中对应的key为" star "。
不过这种方法很麻烦有木有!
这里的map<std::string,Value>::value_type 是一个新创建的pair对象,将直接插入到map容器中。谨记value_types pair<const K,V>类型的同义词,K为键类型,V是键所关联的值的类型。
传递给insert的实参相当笨拙,可用两种方法简化:
1)使用make_pair
- star_map.insert(make_pair("star",a));
- typedef map<std::string,Value>::value_type valType;
- star_map.insert(valType("star",a));
当然了,上面这种方法还是有点麻烦,一点都不爽快,你问还有没有更直接的办法?当然有:
- star_map["star"] = a;
够方便吧?!快!准!狠!
2、读取ValueMap中的元素
我们就说上面的那个 a 吧。将其从star_map中读取出来,怎么在star_map中找到它呢?很容易,找到a对应的键就可以啦。
- Value a = star_map["star"];
- int a = star_map["star"].asInt();
OK;
好了,就说这些,更多细节请参考前一篇的ValueVector:http://blog.csdn.net/star530/article/details/37834689