zoukankan      html  css  js  c++  java
  • 水果(map的嵌套)

    夏天来了~~好开心啊,呵呵,好多好多水果~~ 
    Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了. 

    Input第一行正整数N(0<N<=10)表示有N组测试数据. 
    每组测试数据的第一行是一个整数M(0<M<=100),表示工有M次成功的交易.其后有M行数据,每行表示一次交易,由水果名称(小写字母组成,长度不超过80),水果产地(小写字母组成,长度不超过80)和交易的水果数目(正整数,不超过100)组成. 
    Output对于每一组测试数据,请你输出一份排版格式正确(请分析样本输出)的水果销售情况明细表.这份明细表包括所有水果的产地,名称和销售数目的信息.水果先按产地分类,产地按字母顺序排列;同一产地的水果按照名称排序,名称按字母顺序排序. 
    两组测试数据之间有一个空行.最后一组测试数据之后没有空行. 
    Sample Input

    1
    5
    apple shandong 3
    pineapple guangdong 1
    sugarcane guangdong 1
    pineapple guangdong 3
    pineapple guangdong 1

    Sample Output

    guangdong
       |----pineapple(5)
       |----sugarcane(1)
    shandong
       |----apple(3)
     1 #include<iostream>
     2 #include<string>
     3 #include<map>
     4 using namespace std;
     5 map<string, map<string, int >> mp;
     6 int main()
     7 {
     8     int t,mark=0;
     9     
    10     cin >> t;
    11     while (t--)
    12     {
    13         mp.clear();
    14         if (mark) cout << endl;
    15         mark = 1;
    16         int n;
    17         cin >> n;
    18         for (int i = 0; i < n; i++)
    19         {
    20             string c = "   |----";
    21             string a, b;
    22             int t;
    23             cin >> a >> b >> t;
    24             c += a;
    25             mp[b][c] += t;
    26         }
    27         map<string, map<string, int>> ::iterator p;
    28         for (p = mp.begin(); p != mp.end(); p++)
    29         {
    30             cout << p->first<<endl;
    31             map<string, int >::iterator k;
    32             for (k = p->second.begin(); k != p->second.end(); k++)
    33             {
    34                 cout << k->first << "(" << k->second << ")"<<endl;
    35             }
    36         }
    37     }
    38     return 0;
    39 }

    题解:可用map的嵌套,也可用map中嵌套pair(没有试,下次可以试试),经典水题;

    注意的地方是迭代器的嵌套使用,以及map中的clear操作

  • 相关阅读:
    linux学习之uniq
    hive学习05 参数设置
    【python】调用sm.ms图床api接口,实现上传图片并返回url
    【python】列表与数组之间的相互转换
    更新yum源
    要把RAID5创建卷组
    named-checkconf -z /etc/named.conf
    function_exists
    trigger_error
    命名空间
  • 原文地址:https://www.cnblogs.com/kangdong/p/8454640.html
Copyright © 2011-2022 走看看