地图输出错误

时间:2016-02-05 17:38:53

标签: c++ stdmap

从输出地图中的元素时遇到问题。    我的代码:

#include <iostream>
#include <map>
#include <string>

int main()
{

  int t,n;
  std::string cont;

  std::cin >> t;
  while(t--)
  {
    std::cin >> n;
    std::map<std::string,int> citire;
    std::map<std::string,int>::iterator it;
    for(int i=0; i<n; i++)
    {
      std::getline(std::cin,cont);
      citire[cont]++;
    }

    for(it=citire.begin(); it!=citire.end(); ++it)
      std::cout << it->first << " " << it->second << '\n';

    std::cout << '\n';
  }

  return 0;
}

输入:

2
6
03 10103538 2222 1233 6160 0142 
03 10103538 2222 1233 6160 0141 
30 10103538 2222 1233 6160 0141 
30 10103538 2222 1233 6160 0142 
30 10103538 2222 1233 6160 0141 
30 10103538 2222 1233 6160 0142 

5
30 10103538 2222 1233 6160 0144 
30 10103538 2222 1233 6160 0142 
30 10103538 2222 1233 6160 0145 
30 10103538 2222 1233 6160 0146 
30 10103538 2222 1233 6160 0143 

,我在地图中使用了一行作为键。我所要做的就是输出密钥,其值按密钥递减顺序。

计划的输出:

1
03 10103538 2222 1233 6160 0141  1
03 10103538 2222 1233 6160 0142  1
30 10103538 2222 1233 6160 0141  2
30 10103538 2222 1233 6160 0142  1

 1
 10103538 2222 1233 6160 0142  1
30 10103538 2222 1233 6160 0142  1
30 10103538 2222 1233 6160 0143  23
30 10103538 2222 1233 6160 0144  1
30 10103538 2222 1233 6160 0145  1
30 10103538 2222 1233 6160 0146  1
5 1

正确输出:

03 10103538 2222 1233 6160 0141 1
03 10103538 2222 1233 6160 0142 1
30 10103538 2222 1233 6160 0141 2
30 10103538 2222 1233 6160 0142 2

30 10103538 2222 1233 6160 0142 1
30 10103538 2222 1233 6160 0143 1
30 10103538 2222 1233 6160 0144 1
30 10103538 2222 1233 6160 0145 1
30 10103538 2222 1233 6160 0146 1

我做错了吗?

0 个答案:

没有答案