容器怎么反序列化,举例子
时间: 2023-07-18 14:35:50 浏览: 76
在编程中,反序列化是将序列化数据转换为可操作对象的过程。在容器中,反序列化可以将存储在文件或网络中的数据重新构建为容器对象。举个例子,假设我们有一个存储了一组字符串的 vector 对象,现在需要将它序列化并存储到文件中,然后再从文件中读取并反序列化为 vector 对象:
```c++
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <cstdlib>
#include <cassert>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
using namespace std;
int main()
{
// 创建一个 vector 对象
vector<string> v1;
v1.push_back("hello");
v1.push_back("world");
v1.push_back("boost");
// 将 vector 对象序列化到文件中
ofstream ofs("data.txt");
boost::archive::text_oarchive oa(ofs);
oa << v1;
ofs.close();
// 从文件中读取并反序列化 vector 对象
ifstream ifs("data.txt");
boost::archive::text_iarchive ia(ifs);
vector<string> v2;
ia >> v2;
ifs.close();
// 验证反序列化结果是否正确
assert(v1 == v2);
cout << "反序列化成功!" << endl;
return 0;
}
```
在这个例子中,我们使用了 Boost 库中的序列化和反序列化工具。首先创建了一个 vector 对象 v1,然后将其序列化到文件 data.txt 中。然后我们再从 data.txt 中读取数据并反序列化为 vector 对象 v2,最后通过断言验证反序列化结果是否正确。
阅读全文