STL之双重map(map的second值也是一个map容器)
map容器还是很好用的,虽然效率不是亲手编写的那种高效率得应用,但是在acm中的编码效率和正确率却能够大大的提高,下面是一道双重map容器的应用http://acm.hdu.edu.cn/showproblem.php?pid=1263题意是中文,而且很简单,但是麻烦,用map嵌套就好了[cpp] viewplaincopyprint?
·
map容器还是很好用的,虽然效率不是亲手编写的那种高效率得应用,但是在acm中的编码效率和正确率却能够大大的提高,下面是一道双重map容器的应用
http://acm.hdu.edu.cn/showproblem.php?pid=1263
题意是中文,而且很简单,但是麻烦,用map嵌套就好了
- #include <iostream>
- #include <cstdio>
- #include <string>
- #include <map>
- #include <algorithm>
- #include <iomanip>
- using namespace std;
- map<string, map<string, int> > Map;
- map<string, int> mmap;
- int main()
- {
- int ncase, m;
- cin >> ncase;
- while(ncase--)
- {
- Map.clear();
- cin >> m;
- for(int i = 0; i < m; i++)
- {
- string name, loc;
- int num;
- cin >> name >> loc >> num;
- (Map[loc])[name] += num;
- }
- for(map<string, map<string, int> >::iterator it = Map.begin(); it != Map.end(); it++)
- {
- cout << it->first <<endl;
- for(map<string, int> ::iterator ii = it->second.begin(); ii != it->second.end(); ii++)
- {
- cout << setw(4) << "|";
- cout << "----";
- cout << ii->first <<"(" << ii->second << ")" << endl;
- }
- }
- if(ncase != 0)
- cout << endl;
- }
- return 0;
- }
更多推荐
已为社区贡献4条内容
所有评论(0)