C++一个类的序列化(不一定保存到本地磁盘,也可以是网络上面)貌似不外乎基本类型的保存以及子类的保存,当然还有stl那些容器的保存。其中子类的保存又递归到同一个问题了。那就是基本类型和容器的保存了。下面给个基本的模型,没有指针数组啥的,那些自由发挥吧~
~#include <iostream>
#include <vector>
#include <iterator>
#include <sstream>
using namespace std;
void main()
{
int a = 3,c;
float b = 4.2f,d;
ostringstream s1;
vector<string> v;
vector<string> r;
s1<<a<<" "<<b<<" ";//可对比cout
v.push_back("dsfk");
v.push_back("kdsf");
copy(v.begin(),v.end(),ostream_iterator<string>(s1," ") );//写
string s2 = s1.str();//s2保存的内容为"3,4.2"
cout<<s2<<endl;
istringstream s3(s2);
s3>>c;
s3>>d;
cout<<c<<" "<<d<<" ";
copy(istream_iterator<string>(s3),istream_iterator<string>(),back_inserter(r));//读
copy(r.begin(),r.end(),ostream_iterator<string>(cout," "));
}