一个简陋的文字计数器
通过这个小程序,使我对map,set,fstream 类的使用有所熟悉.
程序摘自《essential c++》,我加了注释.
#include < set >
#include < string >
#include < iostream >
#include < fstream >
using namespace std;
void initialize_exclusion_set( set < string >& ); // 初始化set容器,把要排除在外的单词插入其中
void process_file(map < string , int >& , const set < string >& ,ifstream & ); // 从input.txt文件中读取单词,若单 词未在 set容器中出现过,将其置为map容器中的关键字key,并使相应key的value自加1, 否则读取下一单词,以空格为分界符
void user_query( const map < string , int >& ); // 用户控制台,用户输入search_word,若在map中存在则打印key与相应value值
void display_word_count( const map < string , int >& ,ofstream & ); // 输出map中的所有key与其相应的value值于output.txt中
int main()
... {
ifstream ifile("G:/input.txt");
ofstream ofile("G:/output.txt");
if(!ifile||!ofile)
...{
cerr << "Unable to open file!!! ";
return -1;
}
set<string> exclude_set;
initialize_exclusion_set(exclude_set);
map<string,int> word_count;
process_file(word_count,exclude_set,ifile);
user_query(word_count);
display_word_count(word_count,ofile);
return 0;
}
void initialize_exclusion_set( set < string >& exs)
... {
static string _exclude_words[5]=...{
"the","a","and","an","are"
};
exs.insert(_exclude_words,_exclude_words+5);
}
void process_file(map < string , int >& word_count,
const set < string >& exclude_set,ifstream & ifile )
... {
string word;
while(ifile>>word)
...{
if(exclude_set.count(word))
continue;
word_count[word]++;
}
}
void user_query( const map < string , int > & word_map)
... {
string search_word;
cout << "Please enter a word to search : q to quit ";
cin>>search_word;
while(search_word!="q")
...{
map<string,int>::const_iterator it;
if((it=word_map.find(search_word))!=word_map.end())
cout << "Found! "<<it->first
<< " occurs "<<it->second
<< " times. ";
else cout<<search_word
<<" was not found in text. ";
cout<<" Another search?(q to quit)";
cin>>search_word;
}
}
void
display_word_count( const map < string , int > & word_map,ofstream & os)
... {
map<string,int>::const_iterator
iter=word_map.begin(),
end_it=word_map.end();
while(iter!=end_it)
...{
os<<iter->first <<"("
<<iter->second<<")"<<endl;
++iter;
}
os<<endl;
}
一个简陋的文字计数器相关推荐
- 构建一个可靠的分布式计数器--memcached之incr/decr操作实战分析
2019独角兽企业重金招聘Python工程师标准>>> 最近的项目要依赖于一个分布式计数器的实现,因为公司使用memcached历史已久,所以就想到了使用memcached来作为计数 ...
- python界面显示图片更换背景_用python制作一个简陋的证件照换底色的桌面控制台应用...
获取抠图API密钥 前往RemoveBg官网注册一个账号 注册账户界面已翻译,Api每月可用50次 注册成功后登录,按图示所选点击 点击 Get Api Key 获取Api密钥 安装所需支持库 imp ...
- application实现一个简单的网页计数器
该篇文章首发于我的个人博客:http://cherryblog.site/ 使用github+coding+hexo搭建的静态博客,更多文章请移步至我的个人博客 application(应用对象):存 ...
- 学习记录贴:上班摸鱼做一个看lol文字直播的小工具
学习记录贴:上班摸鱼做一个看lol文字直播的小工具 前言 运行图 流程及思路 项目及代码 总结 前言 本人纯新手小白,上班练手. 致谢: 基于Python命令行的NBA文字直播小工具. 运行图 流程及 ...
- 分享一个日文图片文字识别在线的方法
对于一些从事贸易的朋友,尤其是一些从事国际贸易的朋友,往往需要整理很多外语资料.最近就有个小伙伴说他刚从事与一些日本企业合作,刚开始每天都需要整理大量的日文信息,但人工整理效率太低,但是如果有可以识别 ...
- html特效 wpf,利用WPF实现一个简单的文字粒子闪烁动画特效
利用WPF实现一个简单的文字粒子闪烁动画特效 发布时间:2020-11-06 16:04:19 来源:亿速云 阅读:124 作者:Leah 本篇文章给大家分享的是有关利用WPF实现一个简单的文字粒子闪 ...
- 数字逻辑练习题(十一)利用74LS161设计一个七进制计数器
一.题目描述 已知74LS161为同步四位二进制加法计数器,其逻辑符号和功能表如下,请利用74LS161设计一个七进制计数器.应写出分析设计过程. 二.问题解答 (1)分析 采用同步置数法进行设计:
- 一个简单的网页计数器
今天写了一个最简单的 计数器,实现的功能很简单,可以记录总访问数及今日访问数.代码如下: 复制 保存 // ******************************************** ...
- ug建模文本怎么竖着_UG三维建模一个文字模型,换个角度竟然是一个新的文字!...
原标题:UG三维建模一个文字模型,换个角度竟然是一个新的文字! 上次我们绘制了一个NX模型,就是换个视角还是NX这个文字模型,今天我们就来绘制一个yes or no 视觉体,从一个角度看是一个NO,但 ...
最新文章
- 为什么人工智能被过度炒作?
- mysql四个对勾_Mysql like查询语句中,结果包含反斜杠 \ 字符的,需要替换成四个反斜杠 \\\\...
- halcon知识:【1】二维码原理
- 备战5月软考--软件设计师
- 小心,信用卡销卡后,竟然变成黑名单!
- sketch浮动布局_使用智能布局和调整大小在Sketch中创建更好的可重用符号
- 删除CentOS系统自带的jdk
- Linux 命令 su 和 sudo 的区别?
- 字符串的操作,计算,拼接
- 《Java 多线程编程核心技术》- 笔记
- word批量设置图片大小和对齐,使用宏定义
- gtp怎么安装系统_UEFI+GTP模式下使用GHO文件安装Win8系统的具体操作方法
- 注册表去掉多余的安全删除硬件图标
- MSSQLSERVER 2019修改数据库文件存放路径的简单实现
- 卫片图斑_整治“卫片图斑”,让违建无处可逃!
- 算法竞赛入门经典(第2版)—第五章(C++与STL入门)
- Vue2.x动态添加路由实现
- 面渣逆袭:Spring三十五问,四万字+五十图详解
- 中谷教育Python26~29笔记——正则表达式
- 计算机毕业设计springboot爱宠医院管理系统