使用二进制的write()和read()方法来将vector作为流进行接口化。

15 浏览
0 Comments

使用二进制的write()和read()方法来将vector作为流进行接口化。

我目前正在研究使用精简、惯用、仅使用标准库的C++方法,将二进制数据写入到std::vector中。我希望能以与其他二进制输出流相同的方式与容器进行交互,使用write()函数。

到目前为止,我唯一找到的方法是继承自std::basic_streambuf<>。是否有更好的替代方法?

0
0 Comments

问题出现的原因是需要将一个vector与stream进行交互,使用binary write()和read()。

解决方法是通过继承std::basic_streambuf来实现。不过也提到了一些已经实现了这种功能的库,如boost::iostreams和boost::interprocess。

boost::iostreams和boost::interprocess是两个已经实现了此类功能的库。它们提供了与vector的stream交互的方法。具体的实现细节可以在以下链接中找到:

- boost::iostreams: [http://www.boost.org/doc/libs/1_64_0/libs/iostreams/doc/index.html](http://www.boost.org/doc/libs/1_64_0/libs/iostreams/doc/index.html)

- boost::interprocess: [http://www.boost.org/doc/libs/1_64_0/doc/html/interprocess/streams.html](http://www.boost.org/doc/libs/1_64_0/doc/html/interprocess/streams.html)

0