使用C ++比较大文件
我有两个大文本文件,每个文件都有超过10百万行。 我如何比较这些文件并在使用C ++的文件中获得不同的行。
我曾尝试将一个文件加载到内存中,并对内存进行排序,并使用二叉树逻辑来比较文件。 它在20秒比较并给了我结果。 但它消耗更多的内存。 (文本文件大约500 MB)。
我想比较两个文件,而不消耗更多的内存,良好的性能以及对硬盘的影响最小。
你可以使用两遍方法。
第一遍,您只读取文件,但只存储散列值和行起始位置,然后您可以根据散列值比较文件,当两行具有相同散列值时,您只需再次读取行以进行第二遍完整比较。 这将节省内存消耗和CPU时间,有点罚款读一些线两次。
链接地址: http://www.djcxy.com/p/62347.html