gpt4 book ai didi

c++ - 几个 ifstreams vs. ifstream + 不断寻找

转载 作者:太空狗 更新时间:2023-10-29 21:30:29 26 4
gpt4 key购买 nike

我正在编写一个外部合并排序。它是这样工作的:从大文件中读取 k 个 block ,在内存中对它们进行排序,执行 k 路合并,完成。所以我需要在 k-way 合并阶段从文件的不同部分顺序读取。最好的方法是什么:多个 ifstreams 或一个 ifstream 并寻求?另外,是否有用于简单异步 IO 的库?

最佳答案

在同一个文件上一次使用一个ifstream。浪费资源的不止一个,无论如何你都必须寻找(因为默认情况下 ifstream 的文件指针从文件的开头开始)。

关于 C++ 异步 IO 库,查看 this question .

编辑: 我最初误解了您的意图(这个 Wikipedia article 填满了我)。我不知道默认情况下有多少 ifstream 缓冲,但您可以使用 pubsetbuf(0, 0); 方法关闭缓冲 described here ,然后做你自己的缓冲。然而,这可能比使用具有自动缓冲的多个 ifstream 慢。一些基准测试是有序的。

关于c++ - 几个 ifstreams vs. ifstream + 不断寻找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2675259/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com