如何确定大型文本文件中是否存在给定行?

时间:2019-05-04 22:19:07

标签: c++ file

我需要一个程序来搜索文本文件的行,并查看它是否可以将其中之一与给定的字符串匹配。这些行按字母顺序排序,因此二进制搜索足以确定是否存在匹配项。

问题在于目标文件太大而无法放入RAM。以我为例,它约为10GB,但将来可能会变得更大。这意味着构建std::string或类似类型的容器并对它们执行std::binary_search的简单解决方案不适用。

另一方面,基于std::ifstreamstd::getline的解决方案将顺序处理该文件,这似乎是对已排序文件的浪费。我需要这个过程要快。

是否可以在不将文件预加载到RAM的情况下执行二进制搜索或其他最佳解决方案?

0 个答案:

没有答案