map定义:
typedef map<string, string> Prop;
typedef Prop::iterator PropIter;
typedef map<string, Prop> PropSet;
typedef PropSet::iterator PropSetIter;
嵌套map的添加元素;
(1)方式一:
auto temp1 = propset.find(groupname);
if (temp1 != propset.end())
{
Prop new_prop = temp1->second;
new_prop[definename] = attrvalue;
temp1->second = new_prop;
}
else
{
Prop new_prop;
new_prop[definename] = attrvalue;
propset[groupname] = new_prop;
}
(2)方式二:
vector<string> NameVec;
map<string, vector<string>> NodeTypeMap;
string type = "type";
map<string, vector<string>>::iterator iter = NodeTypeMap.find(type);
if (iter != NodeTypeMap.end())
{
if (data["data"].isArray() && !data["data"].isNull())
{
for (int k = 0; k < data["data"].size(); k++)
{
string tempname = data["data"][k].asString();
iter->second.push_back(tempname);
}
}
}
else if (data["data"].isArray() && !data["data"].isNull())
{
NameVec.clear();
for (int j = 0; j < data["data"].size(); j++)
{
string tempname = data["data"][j].asString();
NameVec.push_back(tempname);
}
NodeTypeMap.insert(pair<string, vector<string>>(type, NameVec));
}