我有两个大文本文件,每个文件有超过1000万行.如何使用C++比较文件并在文件中获取不同的行.
我尝试将一个文件加载到内存中并对内存进行排序,并使用二叉树逻辑来比较文件.它比较并给了我20秒的结果.但它消耗更多的内存.(文本文件大约500 MB).
我想比较两个文件而不消耗更多内存,良好的性能和对硬盘的影响最小.
您可以使用两遍方法。
第一遍,您读取文件但只存储哈希值和行的行起始位置,然后您可以根据哈希值比较文件,只有当两行具有相同的哈希值时,您才在第二遍中再次读取行以进行完整比较。这将节省内存消耗和 CPU 时间,但会稍微读取某些行两次。