Boost如何序列化STL容器?

时间:2012-11-01 14:43:02

标签: c++ serialization boost

我需要知道Boost :: Serialize如何与STL容器一起工作 - 例如map,vector和list。

具体来说,它是否在所有实际容器数据本身之前保存整个容器的大小?

我是否可以读取该尺寸以了解STL容器的大小?

我在使用Visual Studio 2010的Win7,64位上。

感谢。

1 个答案:

答案 0 :(得分:4)

以下是提升序列化std::vector的源代码:http://www.boost.org/doc/libs/1_38_0/boost/serialization/vector.hpp

std::set s:http://www.boost.org/doc/libs/1_38_0/boost/serialization/set.hpp

std::list s:http://www.boost.org/doc/libs/1_38_0/boost/serialization/list.hpp

std::vector非常清楚它确实如此。如果你查看http://www.boost.org/doc/libs/1_38_0/boost/serialization/collections_load_imp.hpp实现头文件,我们会看到:

collection_size_type count;
//...
ar >> BOOST_SERIALIZATION_NVP(count);
load_collection函数中的

std::liststd::set序列化程序都会直接调用它。