c++ TextQuery程序】的更多相关文章

TextQuery程序 我写的第一个版本 返回的是map<size_t, string>这个数据量很大,效率低下. TextQuery.h #inlucde<vector> #include<map> #include<set> #include<iterator> #include<fstream> #include<iostream> #include<sstream> using namespace st…
17.3 重写前面的TextQuery程序,使用tuple代替QueryResult类. TextQuery.h #ifndef TEXTQUERY_H #define TEXTQUERY_H #include<iostream> #include<string> #include<fstream> #include<vector> #include<memory> #include<map> #include<set>…
本文介绍C++关联容器综合应用:TextQuery小程序(源自C++ Primer). 关于关联容器的概念及介绍,请参考园子里这篇博文:http://www.cnblogs.com/cy568searchx/archive/2012/10/08/2715306.html #include<iostream> #include<fstream> #include<sstream> #include<string> #include<map> #in…
文本查询程序 要求:程序允许用户在一个给定文件中查询单词.查询结果是单词在文件中出现的次数及所在行的列表.如果一个单词在一行中出现多次,此行只列出一次. 对要求的分析: 1.读入文件,必须记住单词出现在每一行.因此,程序需要逐行读取文件,并将每一行分解成独立的单词: 2. 程序生成输出时,它必须能提取每个单词所关联的行号:行号必须按升序出现且无重复:必须能打印给定行号的文本. 数据结构分析: 使用vector<string>来保存整个文件的拷贝:使用set来保存每个单词出现的行号:使用map将…
读取用户指定的任意文本文件,然后允许用户从该文件查找单词,查询的结果是该单词出现的次数,并列出每次出现所在的行,如果某单词在同一行中多次出现,程序将只显示改行的一次.行号按升序显示(int main()&&int main(int argc,char**argv)的区别算是了解了,但是跟int mian(int argc,char**argv){}中的文件操作还不熟悉,所以文件读取出现异常还不知道从哪里处理)[原来是中文字符不可以] code: //使用以vector容器存储行号的text…
编程过程中发现书本中的示例程序并不完全,某些地方存在错误,现已改正并添加少许注释.. 1 #include<iostream> 2 #include<fstream> #include<sstream> #include<vector> #include<map> #include<set> #include<algorithm> #include<stdexcept> using namespace std;…
STL实践与分析 --容器的综合应用:文本查询程序 引言: 本章中最重点的实例.由于不须要用到multiset与multimap的内容.于是将这一小节提到了前面.通过这个实例程序,大师分析问题的智慧,大师的编程风格.大师对程序的控制能力,由此可见一斑.因此.我对这一小节的内容差点儿不做改动.或仅仅做非常小的更改(由于有些东西不同人有不同的理解).搬出来.以供大家细致品读. 要求: 我们的程序将读取用户指定的随意文本文件,然后同意用户从该文件里查找单词.查询的结果是该单词出现的次数,并列出每次出现…
C++ 容器的综合应用的一个简单实例——文本查询程序 [0. 需求] 最近在粗略学习<C++ Primer 4th>的容器内容,关联容器的章节末尾有个很不错的实例.通过实现一个简单的文本查询程序,希望能够对C++的容器学习有更深的理解.由于是浅略探讨研究,高手可无视,各位读者发现有什么不妥的地方,请指教. 程序将读取用户指定的任意文本文件,然后允许用户从该文件中查找单词.查询的结果是该单词出现的次数,并列出每次出现所在的行.如果某单词在同一行中多次出现,程序将只显示该行一次.行号按升序显示,即…
<C++ Primer>中第15章为了讲解面向对象编程,举了一个例子:设计一个小程序,能够处理查询给定word在文件中所在行的任务,并且能够处理“非”查询,“或”查询,“与”查询.例如执行查询 one & of |the ,表示对单词one和of的查询结果取交集,然后对单词the的查询结果取并集. 书中查询的底层操作实际定义在类TextQuery中,我们在TextQuery的基础上,进一步封装并实现如下图所示的类结构,能够达到上述功能需求.类之间的结构如下图所示: 程序扼要设计如下表所…
用于大型程序的工具 --命名空间 引言: 在一个给定作用域中定义的每一个名字在该作用域中必须是唯一的,对庞大.复杂的应用程序而言,这个要求可能难以满足.这样的应用程序的全局作用域中一般有很多名字定义.由独立开发的库构成的复杂程序更有可能遇到名字冲突 -- 相同的名字既可能在我们自己的代码中使用,也可能(更常见地)在独立供应商提供的代码中使用. 库倾向于定义很多全局名字 -- 主要是模板名.类型名或函数名.在使用来自多个供应商的库编写应用程序的时候,这些名字中有一些差点儿不可避免地会发生冲突,这样…