首页 > 其他 > 详细

利用stl统计单词出现次数并排序

时间:2014-03-16 15:00:54      阅读:544      评论:0      收藏:0      [点我收藏+]

map和multimap默认都是按照key进行排序的

用一个map<string,int>统计出每个单词出现的次数,但是此时map是按照字符串排序

于是我们再用一个multimap<int,string>来把存储map中的内容,这是的key是int 就会按照单词出现的次数来排序

也就实现了我们的目标

这里之所以用multimap来临时存储是因为multimap可以存在相同的key而map是的key必须唯一

bubuko.com,布布扣
 1   map<string,int> word_cnt;
 2     multimap<int,string> ans;
 3     ifstream fin("txt.txt");
 4     char p[256];
 5     while(!fin.eof())
 6     {
 7         fin>>p;
 8         word_cnt[p]++;
 9         //cout<<p<<endl;
10     }
11     fin.close();
12     for(map<string,int>::iterator it = word_cnt.begin();it!=word_cnt.end();it++)
13     {
14         int x = it->second;
15         string s = it->first;
16         ans.insert(pair<int,string>(x,s));
17     }
18     for(multimap<int,string>::iterator itt=ans.begin(); itt!=ans.end(); itt++)
19     {
20         cout<<itt->first<<" "<<itt->second<<endl;
21     }
bubuko.com,布布扣

利用stl统计单词出现次数并排序,布布扣,bubuko.com

利用stl统计单词出现次数并排序

原文:http://www.cnblogs.com/linqiang/p/3602914.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!