gpt4 book ai didi

c++ - 从 C++ 中的字典文件创建 map 的 map

转载 作者:搜寻专家 更新时间:2023-10-31 01:39:47 24 4
gpt4 key购买 nike

我有一个包含单词列表的文本文件(大约 35 MB 的数据)。我写了一个应用程序,它的工作方式非常像 Scrabble helper 之类的。我发现将整个文件加载到一个集合中是不够的,因为它需要 10 分钟才能完成。我在 C++ 方面不是很有经验,因此我想问你有什么更好的方法来实现它?在我的第一个应用程序版本中,我只是对它进行了二进制搜索。所以我设法通过对文件进行二进制搜索来解决这个问题(不加载它,只是使用 seekg 移动文件指针)。但是这个解决方案不如使用 map 的 map 快。在搜索单词时,我会在 map 中查找它的第一个字母。然后我检索可能的第二个字母的映射并进行另一次搜索(针对第二个字母),依此类推。这样我就可以更快地判断这个词是否在字典中。如果不将整个文件加载到程序中来制作这些 map ,我该如何实现呢?我可以将它们保存在数据库中并读取它们吗?那会更快吗?

最佳答案

35MB 的数据很小。全部加载到内存中是没有问题的,也没有理由加载需要10分钟。如果需要这么长时间,我怀疑您的加载方案会复制 map 。

然而,与其解决这个问题,或者想出你自己的方案,也许你应该尝试一些现成的东西。

您的描述听起来您可以使用嵌套结构的数据库。 MongoDB ,它有一个 C++ interface , 是一种可能的解决方案。

为了提高效率,您可以对方案稍微花点心思。最多说 5 个字母的词,你可以使用 multikey index .除此之外,您还可以使用完全嵌套的结构。

只是不要自己做。专注于您的程序逻辑。

关于c++ - 从 C++ 中的字典文件创建 map 的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30681525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com