欢迎来到天天文库
浏览记录
ID:37927009
大小:35.50 KB
页数:9页
时间:2019-06-02
《C++的一个简单的文本查询程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、本篇实例的目的是做一个简单的文本查询程序,通过编码过程有益于您对vector,map,set的基本掌握。/* *目的:一个简单的文本查询程序 *作用:程序将读取用户指定的任意文本文件,然后允许用户从该文件中查找单词。 *查询的结果是该单词出现的次数,并列出每次出现所在的行。 *如果某单词在同一行中多次出现,程序将只显示该行一次。 *行号按升序显示,即第7行应该在第9行之前输出,依此类推。 *//*思路: *1.使用一个vector类型的对象存储整个输入文件的副本。 * 输入文件的每一行是该vec
2、tor对象的一个元素。 * 因而,在希望输出某一行时,只需以行号为下标获取该行所在的元素即可。 *2.将每个单词所在的行号存储在一个set容器对象中。 * 使用set就可确保每行只有一个条目,而且行号将自动按升序排列。 *3.使用一个map容器将每个单词与一个set容器对象关联起来, * 该set容器对象记录此单词所在的行号。 */TextQuery.H文件 #ifndefTEXTQUERY_H#defineTEXTQUERY_H#include#include#include<
3、map>#include#include#include#include#include classTextQuery{ //asbeforepublic: //typedeftomakedeclarationseasier typedefstd::string::size_typestr_size; typedefstd::vector::size_typeline_no; /*interf
4、ace: * read_filebuildsinternaldatastructuresforthegivenfile * run_queryfindsthegiven word andreturnssetoflinesonwhichitappears * text_linereturnsarequestedlinefromtheinputfile */ voidread_file(std::ifstream&is) {store_file(is);build_map();} s
5、td::setrun_query(conststd::string&)const; std::stringtext_line(line_no)const; str_sizesize()const{returnlines_of_text.size();} voiddisplay_map(); //debuggingaid:printthemap private: //utilityfunctionsusedbyread_file voidstore_file(std::ifst
6、ream&);//storeinputfile voidbuild_map();//associatedeachwordwithasetoflinenumbers //rememberthewholeinputfile std::vectorlines_of_text; //mapwordtosetofthelinesonwhichitoccurs std::map>word_map; //charact
7、ersthatconstitutewhitespace staticstd::stringwhitespace_chars; //canonicalizestext:removespunctuationandmakeseverythinglowercase staticstd::stringcleanup_str(conststd::string&);};#endif TextQuery.CPP文件 #include"TextQuery.h"#include#include8、ing>#include#include#include#include#include#include#include#include usingstd::istringstream;usingstd::set;usingstd::string;using
8、ing>#include#include#include#include#include#include#include#include usingstd::istringstream;usingstd::set;usingstd::string;using
此文档下载收益归作者所有