文本查询程序

c++ primer书中有一个文本查询程序,涉及到了智能指针,操作符重载,类的继承和组合,字符串处理等知识,是个很好的demo。本文就分析下这个demo。

初始版本

设计一个文本查询程序,输入一个文本,以及一个单词,能够输出这个单词所在文本的行数,同时升序打印这一行的内容。如下所示:

首先定义数据结构

  • 需要一个vector来存放整个文本从文件中解析到的内容
  • 需要一个map>来存放每个单词所在的行数

然后定义类

  • 定义一个TextQuery类,用来解析文本,同时保存文本的详细信息
  • 当查询时,返回查询的结构数据,用类QueryResult来保存

进阶版本

上面的初始版本只是适合查询单个单词,如果我们想查询多个单词,加上与或非的逻辑语句呢?当前的代码就不合适了,

显示 Gitment 评论