代码之家  ›  专栏  ›  技术社区  ›  shadeMe

在文本文件中查找子字符串的最快方法

  •  0
  • shadeMe  · 技术社区  · 15 年前

    在文本文件中查找字符串的最快方法是什么?案例场景:在列出大约50000个文件路径的文本文件中查找特定路径(每个路径都有自己的行)。

    4 回复  |  直到 15 年前
        1
  •  2
  •   Alex Martelli    15 年前

    如果您还需要查找子路径,那么排序的std::vector(如果您只查找前缀)可能是唯一有用的方法——或者如果您要查找完全通用的路径子字符串,那么您无论如何都需要扫描所有的向量,但是除非您必须做无数次,否则即使这样也不会太糟糕。

        2
  •  2
  •   AProgrammer    15 年前

    根据场景的不同,您有几种可能的答案。

    • 如果必须在同一个文件中找到多个字符串,那么构建数据结构(如Alex建议的集合)是非常有用的

    • Boyer-Moore 如果必须搜索一个字符串,则该方法非常有效

    • 如果必须搜索多个字符串,则最好使用正则表达式引擎。

        3
  •  0
  •   Tordek    15 年前

    这正是正则表达式的字段;你应该调查grep和awk。