编译器
本人所用的编译器为:CodeBlocks
本人所用的编译器为:CodeBlocks
程序说明
该程序统计查找文本中所有单词的出现次数,并且根据出现次数由多到少依次排列。该程序查考了C++ primer中单词查询程序,对单词查询程序加以修改得到的。
程序运行结果
对从网上找到的英语六级进行单词统计,统计所有单词的出现频率。结果如下:
对从网上找到的英语六级进行单词统计,统计所有单词的出现频率。结果如下:
运行结果:
源代码
main函数
#include <iostream>
#include<vector>
#include<fstream>
#include<cstdlib>
#include"statistics.h"
main函数
#include <iostream>
#include<vector>
#include<fstream>
#include<cstdlib>
#include"statistics.h"
ifstream& open_file(ifstream& in, const string& file)
{
in.close();
in.clear();
in.open(file.c_str());
return in;
}
{
in.close();
in.clear();
in.open(file.c_str());
return in;
}
int main(int argc, char **argv)
{
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>
{
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>
using namespace std;
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
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