TextQuery
文件输入,查找单词,输出出现单词的行数及那一行。
任务:
1:用户指定文件名,程序存文件内容,以便输出每个单词的原始行
2:每一行分解成各个单词,并记录每个单词所在的行。输出行号时,保证以升序输出,且不重复。
3:对单词返回所有的行及行好
4:每行对应一个行号
数据结构:
1:用vector<string>存输入文本的副本,每行一个string元素。读取时用行下标即可。
2:set 存每个单词的行号,set以行号排序
3:map与set关联,map以单词排序
操作:(相对与任务)提供3个接口 任务2不用
1:read_file( ifstream&),每次读一行,每行保存在vector中。然后创建关联每个单词及起所在行号的map
2:run_query(stirng),返回一个set对象,set包含了查询单词的所有行号
3:text_line(行号) 返回该行号对应的原始文本
2和 3 定义为const
下面两个private 读取输入文本 和创建map
1:store_file 读入文件 并保存在vector中
2:build_map 分解每行的string为单词,创建map,同时记录每个单词出现的行号