遍历嵌套Map
来源:互联网 发布:超次元矩阵狂三 编辑:程序博客网 时间:2024/05/22 05:00
原文地址:http://blog.csdn.net/computer055maxi/article/details/6055427
最近开发中要用到STL,然后自己查看了一些资料,并写了一些代码。在使用<map>中,想起了如果是map嵌套,该如何应用呢?下面是我的coding内容:
对于传统的map,我们只需要:
#include<map>
#include<iostream>
int main()
{
map<int, string> scores;
scores.insert(make_pair(100,"maxi"));
scores[100]="MAXI";
scores.insert(make_pair(300,"xiaoyu"));
scores.insert(make_pair(300,"xiao"));
scores[200]="xiaoma";
map<int,string>::iterator pScores;
for(pScores=scores.begin();pScores!=scores.end();pScores++)
{
std::cout<<pScores->first<<" "<<pScores->second<<endl;
}
return 0;}
结果输出:
100 MAXI
200 xiaoma
300 xiaoyu
由此可以看出,scores[100]="MAXI"会直接替换掉原来100map对应的value,而如果调用scores.insert()函数,则由于本map是单映射的,
但如果我想定义嵌套的map并对它进行遍历,该如何进行呢:
#include<map>
#include<iostream>
int main()
{
map<int,map<int,string> >multiMap; //对于这样的map嵌套定义,有两种插入方法:
map<int, string> temp; //定义一个map<int, string>变量,对其定义后在插入multiMap
temp.insert(make_pair(90,"hi"));
temp.insert(pair<int,string>(100,"maxi)); //pair<int,string>()和make_pair()有相同作用
multiMap.insert(make_pair(10, temp)); //将临时变量插入到multiMap中
multiMap[10][80]="xiaoyu"; //可以直接赋值
mulitMap[5][30]="xiaoma";
map<int,map<int,string> >::iterator multitr; // 以下是如何遍历本multiMap
map<int,string>::iterator intertr;
for(multitr=multiMap.begin();multitr!=multiMap.end();multitr++)
{
for(intertr= multitr ->second.begin(); intertr != multitr ->second.end(); intertr ++)
std::cout<< multitr ->first<<" "<<intertr->first<<" ("<< intertr -> second <<")"<<endl;
}
return 0;
}
运行结果如下:
5 30 (xiaoma)
10 80 (xiaoyu)
10 90 (hi)
10 100 (maxi)
总结,map的成员加入有两种赋值方法,一种是调用map.insert()函数,这样,由于是单映射,后面加入的新的pair对如果有key值和前面一样,那么后面的pair对元素将不会被加入到map中;但如果是直接[ ]=赋值操作的话,相当于数组赋值,会直接替换掉原来具有相同key域的pair对。本发现会对如何增加pair对数据的调用方法有些指导意义。
遍历嵌套QMap
for (QMap<ttservice::EXTBrokerType, QMap<QString, CQuoterServerParam> >::const_iterator iter = m_param.m_mapServers.begin(); iter != m_param.m_mapServers.end(); ++iter) { const QMap<QString, CQuoterServerParam>& oSubMap = (*iter); if (oSubMap.size() != 0) { for (QMap<QString, CQuoterServerParam>::const_iterator iterSub = oSubMap.begin(); iterSub != oSubMap.end(); ++iterSub) { } } }
- Map嵌套Map遍历
- 遍历嵌套Map
- JAVA Map 遍历Map 集合 map 的嵌套
- 双列集合Map的嵌套遍历
- Mybatis foreach嵌套遍历Map的key和value
- map嵌套
- 遍历MAP
- 遍历Map
- 遍历Map
- map遍历
- Map 遍历
- 遍历map
- 遍历MAP
- Map遍历
- Map 遍历
- MAP遍历
- 遍历Map
- 遍历Map
- iBET Online Casino Labour Day Free RM10 to New Member(iBET, iBET Free Credit Promotion, iBET Labour
- Volley请求
- Android 自动填充短信验证码
- JavaScript之对象、构造函数、包装类
- sql server t-sql脚本转成oracle plsql
- 遍历嵌套Map
- clips系列二-clips调用外部函数
- HDU 6019 set
- 扫描二维码和生成二维码
- yum 命令
- 初级技术平台期的思考
- 致青春——(/・ω・\)
- os x 远程桌面连接无法验证您希望连接的计算机的身份
- unity 在鼠标点击位置生成物体