我目前正在做一个学校项目,用 C++ 开发拼写检查器。对于检查单词是否存在的部分,我目前执行以下操作:
- 我在网上找到了一个 .txt 文件,其中包含所有现有的英文单词
- 我的脚本首先遍历这些文本文件并将每个 它在 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/