检查字符串是否在单词列表中的最有效方法

most efficient way to check if a string is within a wordlist

本文关键字:有效 方法 列表 字符串 是否 单词 检查      更新时间:2023-10-16

我需要最有效的方法来确定字符串是否在单词列表中(这是一个包含所有单词的文本文件)。

显然,我可以创建一个ofstream对象,并在每一行中循环,看看字符串是否存在。

有更快的方法吗?也许用地图?

感谢

要在多个单词的列表中找到一个特定的单词,我会使用std::unordered_set,这是另一个名称的哈希表。

基本上:

  1. 将文件中的单词读入集合
  2. 选择一个"随机字母组合"
  3. 使用find()查看它是否在集合中
  4. 根据需要转到2

显然,如果你只想搜索一个单词,那么加载到一个集合中是没有意义的。只需读取文件并边检查边检查(因为平均而言,您只需要读取一半文件,这显然比读取整个文件快50%)