在统计文本数据时,经常会出现一些key-value结构的数据,并且需要进行动态的修改,下面为用c++标准程序库实现的一个操作key-value结构数据的简单例子。
#include<iostream>
#include <map>
#include <vector>
#include <set>
#include <string>
using namespace std;
typedef struct atom_node
{
std::string key;
std::string value;
} atom;
typedef std::pair <std::string,struct atom_node> _KV_ ;/*这个很有必要,在程序中直接插入,vs2008会出现错误*/
int main()
{
std::map<std::string,atom> val;/*map中的key不允许插入重复的数据*/
std::string key="lyc";
atom v;
v.key = "语文";
v.value = "99";
val.insert(_KV_(key,v));/*插入数据*/
std::map<std::string,atom>::iterator it = val.begin();
it = val.find(key);/*通过key查找数据*/
std::cout<<(*it).second.key<<"\t"<<(*it).second.value <<std::endl;/*结果为:语文 99*/
(*it).second.value = "100";/*修改数据*/
std::cout<<(*it).second.key <<"\t"<<(*it).second.value <<std::endl;/*结果为:语文 100*/
return 0;
}