C++11 boost和stl中的iostream比较

C++11 boost和stl中的iostream比较,c++11,boost,stl,boost-asio,C++11,Boost,Stl,Boost Asio,正如我提到的 stlp_std::ostream //stl lib call for io stream boost::archive::text_oarchive //boost call for io serialization using archive 有谁能澄清一下通过归档实现序列化的用途吗? 两个调用是否引用相同的功能 序列化是数据结构到线性字符序列的可逆转换。C++ iOFFROW不提供任何可逆性,提升文件的工作。 存档是存储文档以供以后检索的地方。Boost归档文件存储序列

正如我提到的

stlp_std::ostream  //stl lib call for io stream
boost::archive::text_oarchive //boost call for io serialization using archive
有谁能澄清一下通过归档实现序列化的用途吗? 两个调用是否引用相同的功能

序列化是数据结构到线性字符序列的可逆转换。C++ iOFFROW不提供任何可逆性,提升文件的工作。


存档是存储文档以供以后检索的地方。Boost归档文件存储序列化的数据结构,以便以后进行反序列化。

区别实际上有点常见问题。Boost库的文档中对此有很好的描述。下面引用的所有粗体和大写字母均为原创,不是我写的:

中:


< <代码> <代码和代码> <代码>建议了档案与C++ I/O流之间的关系。强>档案不是C++ I/O流<强>。此系统包含的所有存档都将一个流作为构造函数中的参数,该流用于输出或输入。但是,这不是序列化函数或归档接口的要求。事实证明,到目前为止编写的归档文件发现基于流的实现非常有用

甚至有一节是关于这个的

档案不是流 存档类不是从流派生的,尽管它们具有相似的语法规则

  • 归档类不是流的类型,尽管它们是根据流实现的。第41项说明了这一区别
  • 我们不希望用户直接在流中插入/提取数据。这可能会创建损坏的存档。如果档案是从流中派生出来的,可能会意外地这样做。所以归档类只定义安全和必要的操作
  • 使用streams实现库中包含的归档类仅仅是方便的,而不是必需的。图书馆用户可能希望定义自己的归档格式,而根本不使用流

你能再具体一点吗?关于序列化还有什么不清楚的地方?请让我了解一下,归档与序列化有什么关系?你认为
text\u oarchive
来自哪个库?
#include
我将此用作
text\u oarchive
的标题,对吗?这是它的标题,是的,但库是。.-]档案不是C++ I/O流——现在我非常清楚,非常感谢你。