【发布时间】:2017-06-13 09:49:00
【问题描述】:
我正在做一个大学项目,在继续之前我有一个问题。我必须将 'dictionary.txt' 导入程序,以便它可以更正其他文件的文本。
现在我的 .txt 文件是 20mb,里面有 200 万字。程序启动后,我将其存储到向量中。加载所有单词需要 2 秒。
我的问题:这是在程序中导入这么多单词的正确方法吗?其背后的逻辑是,“essay”中的每个单词都会在 200 万个单词中循环,直到找到并中断。
在我让这成为可能之前,我想知道这样做是好是坏,以及为什么。
【问题讨论】:
-
不,
vector是一个非常糟糕的选择。您正在寻找std::map。 -
我想知道
map将如何帮助! -
@CinCout 和
map不会有可能更快的线性搜索。请解释为什么map没有帮助。 -
也许内存映射文件,也许这会有所帮助github.com/johannesthoma/mmap_allocator/blob/master/README.md
-
@MichaelWalz 然后
std::set可能会更好