免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5344 | 回复: 4
打印 上一主题 下一主题

请问怎样遍历一个二维数组的map? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-09 16:40 |只看该作者 |倒序浏览


  1. #include <iostream>
  2. #include <map>
  3. #include <string>
  4. using namespace std;

  5. int main()
  6. {
  7.         typedef map<string,map<string,string> > arr;
  8.         arr i;

  9.         i["1"]["select"] = "aaaaaaa";
  10.         i["1"]["total"]  = "2";
  11.         i["2"]["select"] = "bbbbbb";
  12.         i["2"]["total"]  = "24";
  13.        
  14.         for( arr::iterator iter = i.begin(); iter != i.end(); iter++ )
  15.         {
  16.                 cout << "word: " << iter->first << ", count: " << iter->second << endl;
  17.         }
  18.         return 0;
  19. }

复制代码


我这样遍历,编译器报一大堆错误.
能否告诉我正确的遍历二维map的方法
要得到键名和值.

论坛徽章:
0
2 [报告]
发表于 2006-12-09 16:59 |只看该作者
原帖由 我要思考 于 2006-12-9 00:40 发表


  1. #include <iostream>
  2. #include <map>
  3. #include <string>
  4. using namespace std;

  5. int main()
  6. {
  7.         typedef map<string,map<string,string> > arr;
  8.         arr i;

  9.         i ...
复制代码


iter->second.size()

论坛徽章:
0
3 [报告]
发表于 2006-12-09 17:04 |只看该作者
for( arr::iterator iter = i.begin(); iter != i.end(); iter++ )
{
        for (map<string, string>::iterator iter2 = (iter->second).begin(); iter2 != (iter->second).end(); iter2++)
                cout<<"Key1: "<<iter->first<<", Key2: "<<iter2->first<<", Value: "<<iter2->second<<endl;
}

论坛徽章:
0
4 [报告]
发表于 2006-12-09 17:11 |只看该作者

  1. #include <iostream>
  2. #include <map>
  3. #include <string>
  4. using namespace std;

  5. int main()
  6. {
  7.         typedef map<string,map<string,string> > arr;
  8.         arr i;

  9.         i["1"]["select"] = "aaaaaaa";
  10.         i["1"]["total"]  = "2";
  11.         i["2"]["select"] = "bbbbbb";
  12.         i["2"]["total"]  = "24";
  13.        
  14.         for( arr::iterator iter = i.begin(); iter < iter->second.size(); iter++ )
  15.         {
  16.                 cout << "word: " << iter->first << ", count: " << iter->second << endl;
  17.         }
  18.         return 0;
  19. }

复制代码


修改成这样了,还是出现一大堆错误,能否给个具体一点的代码提示

论坛徽章:
0
5 [报告]
发表于 2006-12-09 17:13 |只看该作者
谢谢三楼的兄弟,遍历成功
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP