c++ - 如何方便快捷的存储一个大词库?

标签 c++ database dictionary words

我目前正在做一个学校项目,用 C++ 开发拼写检查器。对于检查单词是否存在的部分,我目前执行以下操作:

  1. 我在网上找到了一个 .txt 文件,其中包含所有现有的英文单词
  2. 我的脚本首先遍历这些文本文件并将每个 它在 map 对象中的条目,以便于访问。

这种方法的问题是当程序启动时,步骤 2) 大约需要 20 秒。这本身没什么大不了的,但我想知道你们中是否有人有其他方法可以快速使用我的单词数据库。例如,是否有一种方法可以将 map 对象存储在一个文件中,这样我就不需要每次都从文本文件中构建它?

最佳答案

如果你的全是英文单词的文件不是动态的,你可以将它存储在静态 map 中。为此,您需要解析 .txt 文件,例如:

alpha

beta

gamma

...

把它转换成这样:

static std::map<std::string,int> wordDictionary = {
                { "alpha", 0 },
                { "beta", 0 },
                { "gamma", 0 } 
                   ... };

您可以通过编程或简单地在您喜欢的文本编辑器中使用查找和替换来完成此操作。

您的 .exe 将比以前重得多,但它的启动速度也将比从文件中读取此信息快得多。

关于c++ - 如何方便快捷的存储一个大词库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48475344/

相关文章:

c++ - 在 Visual Studio 2012 中链接 zlib

C++:释放动态数组(结构成员)和指向该结构的指针的方法

android - 如何将图像存储在数据库中并在 ListView 中显示

c# - 根据列表中存在的键值过滤字典

python - 在现有的 python 字典键上添加更多值

c++ - 映射( reshape )静态特征矩阵

c++ - 如何在数组的一次迭代中对 bool 数组进行排序(仅遍历数组一次)?

c# - 如何在整个应用程序中使用 mysqlconnection

php - 多语言网站、技巧和解决方案

javascript - 通过 Node.js 中的函数将数据库结果保存在 Dictionary 中