本人所用的编译器为:CodeBlocks
该程序统计查找文本中所有单词的出现次数,并且根据出现次数由多到少依次排列。该程序查考了C++ primer中单词查询程序,对单词查询程序加以修改得到的。
对从网上找到的英语六级进行单词统计,统计所有单词的出现频率。结果如下:
main函数
#include <iostream>
#include<vector>
#include<fstream>
#include<cstdlib>
#include"statistics.h"
{
in.close();
in.clear();
in.open(file.c_str());
return in;
}
{
ifstream infile("text.txt");
statistics tq;
tq.read_file(infile);
tq.dis();
return 0;
}
类函数
#ifndef STATISTICS_H
#define STATISTICS_H
#include<iostream>
#include<vector>
#include<map>
#include<iostream>
#include<vector>
#include<fstream>
#include<set>
#include<string>
#include<map>
#include<sstream>
class statistics
{
public:
typedef vector<string>::size_type line_no;
statistics();
virtual ~statistics();
void read_file(ifstream& is){
store_file(is);
build_map();
}
void store_file(ifstream&);
void build_map();
void dis();
private:
vector<string> lines_of_text;
map<string, int> word_map;
map<string, int> finish;
};
#include "statistics.h"
void statistics::store_file(ifstream& file)
{
string textline;
while(getline(file, textline))
lines_of_text.push_back(textline);
}
void statistics::build_map()
{
for (statistics::line_no line_num = 0; line_num != lines_of_text.size(); ++line_num){
istringstream line(lines_of_text[line_num]);
string word;
while(line >> word){
word_map[word] += 1;
}
}
}
void statistics::dis()
{
map<string, int> first_Max;
map<string, int>::iterator Max;
first_Max["finish"] = 0;
for(map<string, int>::size_type times = 0; times != word_map.size(); times++){
Max = first_Max.begin();
for(map<string, int>::iterator num = word_map.begin(); num != word_map.end(); num++){
if(num->second > Max->second)
Max = num;
}
cout << Max->first << "t" << Max->second <<" 次"<<endl;
finish[Max->first] = Max->second;
word_map.erase(Max);
}
}
statistics::statistics()
{
}
statistics::~statistics()
{
}
————————————————
版权声明:本文为CSDN博主「AutoCar_player」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/AutoCar_player/article/details/102995713
原文链接: https://www.cnblogs.com/ai-player/p/11830525.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/305728
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!