Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有两个大文本文件,每个文件都有超过 1000 万行。如何使用 C++ 比较文件并获取文件中的不同行。
我尝试将一个文件加载到内存中并对内存进行排序并使用二叉树逻辑来比较文件。它比较并在 20 秒内给了我结果。但它会消耗更多的内存。(文本文件大约 500 MB)。
我想在不消耗更多内存的情况下比较两个文件,一个良好的性能并且对硬盘的影响最小。
您可以使用两遍方法。
第一遍,您读取文件但只存储哈希值和行的行开始位置,然后您可以根据哈希值比较文件,当两行具有相同的哈希值时,您只能在第二遍中再次读取行以进行完整比较。这将节省内存消耗和 cpu 时间,但读取某些行两次会有点惩罚。