【发布时间】:2012-08-06 17:14:26
【问题描述】:
我有两个大文本文件,每个文件都有超过 1000 万行。如何使用 C++ 比较文件并获取文件中的不同行。
我尝试将一个文件加载到内存中并对内存进行排序并使用二叉树逻辑来比较文件。它比较并在 20 秒内给了我结果。但它会消耗更多的内存。 (文本文件大约 500 MB)。
我想比较两个文件而不消耗更多内存、良好的性能并且对硬盘的影响最小。
【问题讨论】:
-
第一步是选择一种语言。 C 和 C++ 的解决方案会有所不同。
-
差异工具不能满足您的要求吗?比重新发明轮子更容易。
-
这让我想起了“质量、预算、时间 - 选择两个”
-
你的意思是像一个差异?一次只读取每个文件的一行。否则这个问题太模糊和模棱两可了。文件是否只是几组行,这意味着它们的顺序并不重要?目前尚不清楚“不同的线条”究竟是什么意思。
-
您想知道这两个文件的不同之处(基本上是
diff),或者哪些行在一个文件中而不在另一个文件中?