STL类的序列化

use*_*241 6 c++ serialization stl

是否可以序列化任何STL类,包括std :: string?我有一组std :: strings,我正在尝试将它们写入文件并将它们加载回std :: set.

Aby*_*byx 10

是的,这是可能的.例如,使用boost.serialization.

对于STL,请阅读相应的教程部分

  • @cpx:`#include <boost/serialization/set.hpp>` (2认同)

Ela*_*ich 5

使用boost :: serialization序列化STL类型的示例

#include <map>
#include <fstream>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>

#include <boost/serialization/map.hpp>

int main(int argc,char** argv) {
  std::ofstream s("tmp.oarchive");
  boost::archive::text_oarchive oa(s);
  std::map<int,int> m;
  m[1] = 100;
  m[2] = 200;
  oa << m;
}
Run Code Online (Sandbox Code Playgroud)

编译

g++ -lboost_serialization myfile.cc
Run Code Online (Sandbox Code Playgroud)

注意

  1. 本#include <boost/archive/text_iarchive.hpp>必须是任何其他前boost系列化包括。
  2. 您需要包括要存档的STL类型的标头。