首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ Primer 文本查詢:布爾邏輯查詢詞位置,參考標準庫實現

     編輯:程式設計綜合問答

需求:支持 &&(相鄰)、||(至少一個)、!(不存在)、()(分組)的布爾查詢,返回單詞首尾位置。屬於經典《C++ Primer》第 12 章文本查詢系統擴展練習。

核心數據結構

map> word_line;      // 單詞 → 出現行號集合
map>> word_pos; // 單詞 → 行號 → 位置列表

查詢解析策略

  1. 詞法分析:將查詢字符串分解為 Token(單詞、操作符、括號)
  2. 語法分析:遞歸下降或 Shunting-yard 算法構建 AST
  3. 求值:對 AST 遍歷,對單詞查詢 word_line,對操作符執行集合運算
  4. 相鄰判斷:同行且位置差為 1

參考資源

百度知道類似實現討論 — 可作為邏輯參考,建議自行實現以掌握遞歸下降解析器寫法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved