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

时间:2015-11-27 21:20:26

标签: c++

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

显然我可以创建一个ofstream对象并遍历每一行以查看该字符串是否存在。

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

由于

1 个答案:

答案 0 :(得分:0)

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

基本上:

  1. 将文件中的单词读入集合。
  2. 选择"随机组合字母"。
  3. 使用find()查看它是否在集合中。
  4. 根据需要转到2.
  5. 显然,如果你只想搜索一个单词,那么加载到一个集合中就没有意义了。只需阅读文件并随时查看(因为平均而言,您只需阅读文件的一半,这显然比阅读整个文件快50%)