【问题标题】:Difference between std::fstream and Boost Iostreams Librarystd::fstream 和 Boost Iostreams 库之间的区别
【发布时间】:2012-09-03 16:05:59
【问题描述】:

我是 BOOST 库的新手。今天看到一个小代码段,其中读取和写入 PGM 格式的图像是使用 Boost Iostreams 库实现的。由于我对 STL 更加熟悉,我可以很容易地看出 std::fstream 可以做同样的工作。那么我的问题是,在这样一个简单的读写PGM图像应用程序中使用Boost库有什么意义呢?此外,我想知道在哪种情况下最需要 BOOST Iostreams 库。谢谢!

【问题讨论】:

    标签: c++ boost stl


    【解决方案1】:

    来自std::fstreamreference

    fstream 提供了一个从文件中读取和写入数据的接口 输入/输出流。

    来自Boost.Iostreams reference

    Boost.Iostreams 有三个目标:

    • 使创建标准 C++ 流和流缓冲区以访问新的源和接收器变得容易。
    • 提供定义过滤器并将它们附加到标准流和流缓冲区的框架。
    • 提供一组现成的过滤器、源和接收器。

    【讨论】:

    • tbh 作为一个半菜鸟,这对我没有任何意义......你所说的那些过滤器、来源和接收器是什么。我什么时候需要使用它们?
    • @NoSenseEtAl 要了解这些过滤器、源和接收器是什么,您只需阅读我在上面引用的 Boost.Iostreams 的手册。基本上,这就是数据位的流动方式:它们来自源,通过过滤器(处理数据的地方),然后到达接收器。您可以轻松组合 source-filters-sinks 等。但是如果您只需要将某个文件读入缓冲区,那么您当然不需要所有这些。
    猜你喜欢
    • 2018-08-23
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    相关资源
    最近更新 更多