#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
map<string,int> mymap; //创建map类对象
string str;
map<string,int>::iterator it; //创建迭代指针
int count=0;
while(getline(cin,str))
{
mymap[str]++;
count++;
}
for ( it=mymap.begin() ; it != mymap.end(); it++ ) //按顺序输出容器中的元素
{
cout<<it->first;
printf(" %.4lf\n",100.00000000*(it->second)/(double)count);
}
return 0;
}
//mymap中的int成员默认值为0;所以没有必要考虑是否为空。
这道题过的贼诡异,我依旧用map容器做的,在自己的电脑上根本运行不了,但是交上去就ac了,太神奇了,map容器的主要特点就是代码少但是所需的运行时间长,如果能很好的掌握map类的所有成员函数而利用它,对于很多问题的解决都会事半功倍,很多函数不懂,还得继续努力啊
转载于:https://www.cnblogs.com/Chinese-Coder-Clarence/articles/2039293.html