C++从一个文件中统计所有出现过的单词,并按次数从大到小输出
2013-11-21 17:15
579 查看
#include <iostream> #include <string> #include <fstream> #include <map> #include <algorithm> using namespace std; int main() { ifstream input; input.open("word.txt"); string eachline; map<string, int> mapA; //第一个存单词,第二个存单词出现的次数; while (getline(input, eachline)) { string::size_type start = 0; string::size_type end = eachline.find_first_of(" "); while (end != string::npos) //npos就是这一行到头啦; { string content = eachline.substr(start, end - start); map<string, int>::iterator it = mapA.find(content); if (it == mapA.end()) { mapA.insert(pair<string, int>(content, 1));//赋值的时候只接受pair类型; } else { ++it->second; } start = end + 1; end = eachline.find_first_of(" ", start); } } multimap<int, string, greater<int> > mapB; for (map<string, int>::iterator it1 = mapA.begin(); it1 != mapA.end();++it1) { mapB.insert(pair<int, string>(it1->second, it1->first)); } for (map<int, string>::iterator it2 = mapB.begin(); it2 != mapB.end();++it2) { // if ((it2->first) > 1) cout << it2->second << "单词出现的次数是" << it2->first << endl; } }
相关文章推荐
- 针对一个文件 统计其中的单词和字符数 找出文件中出现次数最多的单词数 将文件中出现的单词按频率进行排序并输出
- Java实现读取键盘输入保存到txt文件,再统计并输出每个单词出现次数的方法
- 设计相应的数据结构和算法,尽量高效的统计一片英文文章(总单词数目)里出现的所有英文单词, * 按照在文章中首次出现的顺序打印输出该单词和它的出现次数。
- 统计输出某个文件中每个单词出现的次数
- 把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出
- java 读取键盘输入到txt文件,统计每个单词出现的次数并输出
- c语言统计从文件读取的文章中所有单词的出现次数
- 把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出例如: a: 21 次 b: 15 次 c:: 15 次 把: 7 次 当: 9 次 前: 3 次
- scala统计一个文件夹下面所有文件的单词出现的总次数
- 统计输入中所有单词出现的次数(使用二叉查找树实现:递归和非递归)
- Hadoop:使用原生python编写MapReduce来统计文本文件中所有单词出现的频率功能
- 文件夹下有子文件夹又有.txt,子文件夹又有子文件夹又有.txt和子文件夹,把txt文件上面的单词全打出来并统计相同单词出现次数
- 统计文件中出现次数最多的前10个单词
- java 正则表达式查找某段字符串中所有小写字母开头的单词并统计次数,按出现次数排序
- java实现读取一篇英文文章,统计其中每个单词出现的次数并排序输出
- C++ <统计单词数及单个字母出现次数>
- 将文件input.bin中的数据按字节(无符号数值)统计,输出每个数值在文件中出现的次数
- 从文件读取包含数字和字母字符串,统计每个字符出现的次数,将次数输出到另外一个文件
- sort +awk+uniq 统计文件中出现次数最多的前10个单词