TextQuery.h
上传用户:cydzxjc
上传日期:2021-11-14
资源大小:2668k
文件大小:1k
源码类别:

STL

开发平台:

Visual C++

  1. #pragma once
  2. typedef pair<short, short> location;
  3. typedef vector<location> loc;
  4. typedef vector<string> text;
  5. typedef pair<text*, loc*> text_loc;
  6. typedef map<string, loc*>::value_type val_Type;
  7. typedef set<string>::difference_type diff_type;
  8. typedef map<string, loc*> map_text;
  9. class CTextQuery
  10. {
  11. public:
  12. CTextQuery(void);
  13. ~CTextQuery(void);
  14. //过滤元素
  15. static void filter_elements(string felems);
  16. //文本查询
  17. void query_text();
  18. //显示map文本
  19. void display_map_text();
  20. //显示文本的位置
  21. void display_text_locations();
  22. //执行它
  23. void doit()
  24. {
  25. retrieve_text();
  26. separate_words();
  27. filter_text();
  28. suffix_text();
  29. strip_caps();
  30. build_word_map();
  31. }
  32. private:
  33. //保存文本行
  34. void retrieve_text();
  35. //分割行变成单词
  36. void separate_words();
  37. //过滤文本
  38. void filter_text();
  39. //剥去XX
  40. void strip_caps();
  41. //后缀处理
  42. void suffix_text();
  43. //后缀s处理
  44. void suffix_s(string&);
  45. //将单词构成map
  46. void build_word_map();
  47. private:
  48. vector<string> *lines_of_text;
  49. text_loc *text_locations;
  50. map<string, loc*> *word_map;
  51. static string filt_elems;
  52. };