C++ STL一一map存储小实例

来源:互联网 发布:ubuntu更新软件命令 编辑:程序博客网 时间:2024/05/16 07:07

map存储在xml文件中的体现是非常方便的,如下简单的xml文件实例结构

/*<Params>    <Name>xuanyin235</Name>    <Age>24</Age>    <Sex>male</Sex></Params>*/
/*<SubItems>    <Item1 Name="xuanyin235" Age="24" Sex="male" />    <Item2 Name="kitty" Age="18" Sex="female" />    <Item3 Name="Kimi" Age="13" Sex="male" /></SubItems>*/
代码存储实例如下:

//vector_map.h#include <vector>#include <map>#include <iostream>#include <string>using namespace std;typedef struct{vector<string> v_param;map<string,string> m_param;}_V_1MAP_PARAM,*_pV_1MAP_PARAM;typedef struct{vector<string> v_param;map<string,_V_1MAP_PARAM> m_param;}_V_2MAP_PARAM,_pV_2MAP_PARAM;typedef struct  {_V_1MAP_PARAM m_v_1map_param;_V_2MAP_PARAM m_v_2map_param;}_DEF_PARAM;void InitParams();void InitSubItems();
//vector_map.cpp#include "vector_map.h"_DEF_PARAM def_param;void main(){InitParams();cout<<"***************InitParams**************"<<endl;for (int iParamIndex=0;iParamIndex<def_param.m_v_1map_param.m_param.size();iParamIndex++){cout<<def_param.m_v_1map_param.v_param[iParamIndex]<<" "<<def_param.m_v_1map_param.m_param[def_param.m_v_1map_param.v_param[iParamIndex]]<<endl;}InitSubItems();cout<<"***************InitSubItems**************"<<endl;for (int iSubItems=0;iSubItems<def_param.m_v_2map_param.m_param.size();iSubItems++){cout<<def_param.m_v_2map_param.v_param[iSubItems]<<" ";_V_1MAP_PARAM v_1map_param;v_1map_param = def_param.m_v_2map_param.m_param[def_param.m_v_2map_param.v_param[iSubItems]];map<string,string>::iterator it = v_1map_param.m_param.begin();for (int index=0;index<v_1map_param.m_param.size();index++){cout<<v_1map_param.v_param[index]<<" "<<v_1map_param.m_param[v_1map_param.v_param[index]]<<" ";}cout<<endl;}}void InitParams(){_V_1MAP_PARAM v_1map_param;v_1map_param.m_param.insert(make_pair("Name","xuanyin235"));v_1map_param.m_param.insert(make_pair("Age","24"));v_1map_param.m_param.insert(make_pair("Sex","male"));map<string,string>::iterator it = v_1map_param.m_param.begin();for (int iParamIndex=0; iParamIndex<v_1map_param.m_param.size();iParamIndex++){v_1map_param.v_param.push_back(it->first);it++;}def_param.m_v_1map_param = v_1map_param;}void InitSubItems(){_V_1MAP_PARAM v_1map_param1;_V_2MAP_PARAM v_2map_param;v_1map_param1.m_param.insert(make_pair("Name","xuanyin235"));v_1map_param1.m_param.insert(make_pair("Age","24"));v_1map_param1.m_param.insert(make_pair("Sex","male"));map<string,string>::iterator it1=v_1map_param1.m_param.begin();for (int i=0;i<v_1map_param1.m_param.size();i++){v_1map_param1.v_param.push_back(it1->first);it1++;}v_2map_param.m_param.insert(make_pair("Item1",v_1map_param1));_V_1MAP_PARAM v_1map_param2;v_1map_param2.m_param.insert(make_pair("Name","kitty"));v_1map_param2.m_param.insert(make_pair("Age","18"));v_1map_param2.m_param.insert(make_pair("Sex","female"));map<string,string>::iterator it2=v_1map_param2.m_param.begin();for (int i=0;i<v_1map_param2.m_param.size();i++){v_1map_param2.v_param.push_back(it2->first);it2++;}v_2map_param.m_param.insert(make_pair("Item2",v_1map_param2));_V_1MAP_PARAM v_1map_param3;v_1map_param3.m_param.insert(make_pair("Name","Kimi"));v_1map_param3.m_param.insert(make_pair("Age","13"));v_1map_param3.m_param.insert(make_pair("Sex","male"));map<string,string>::iterator it3=v_1map_param3.m_param.begin();for (int i=0;i<v_1map_param3.m_param.size();i++){v_1map_param3.v_param.push_back(it3->first);it3++;}v_2map_param.m_param.insert(make_pair("Item3",v_1map_param3));map<string,_V_1MAP_PARAM>::iterator it = v_2map_param.m_param.begin();for (int i=0;i<v_2map_param.m_param.size();i++){v_2map_param.v_param.push_back(it->first);it++;}def_param.m_v_2map_param = v_2map_param;}
运行结果:

***************InitParams**************Age 24Name xuanyin235Sex male***************InitSubItems**************Item1 Age 24 Name xuanyin235 Sex maleItem2 Age 18 Name kitty Sex femaleItem3 Age 13 Name Kimi Sex male请按任意键继续. . .