std::fstream和Boost Iostreams库的区别

4

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

1个回答

2

来自 std::fstream 参考文献

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

来自 Boost.Iostreams 参考文献

Boost.Iostreams 有三个目标:

  • 使得创建用于访问新 Sources 和 Sinks 的标准 C++ 流和流缓冲区变得容易。
  • 提供一个定义 Filters 并将它们附加到标准流和流缓冲区的框架。
  • 提供一组可直接使用的 Filters、Sources 和 Sinks。

7
作为一个半新手,这对我来说毫无意义...你所说的那些过滤器、源和汇是什么?我什么时候需要使用它们? - NoSenseEtAl
1
@NoSenseEtAl 如果你想了解这些过滤器、源和汇是什么,你只需要阅读我上面引用的Boost.Iostreams手册。基本上,数据位的流动方式如下:它们来自一个源头,经过过滤器(在这里处理数据),最终到达汇(sinks)。你可以轻松地组合源-过滤器-汇等。但如果你只需要将某个文件按原样读入缓冲区,那么你肯定不需要所有这些。 - Igor R.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接