使用Boost序列化保存和检索多个对象
Saving and retrieving multiple objects using boost serialization
如何使用boost序列化保存和获取多个对象(对象数量变化)?例如,我有课堂联系人,然后输入联系人并将其保存到文件。另一次我输入另一个联系人,也应保存在文件中。
我认为保存功能应该是这样:
void save_contact(const Contact &s, const char * filename){
std::ofstream ofs(filename, std::ios::app);
boost::archive::text_oarchive oa(ofs);
oa << s;
ofs << "n";
}
,要检索联系人,我应该跟踪联系人号码,对吗?要检索单个联系人,我使用以下代码:
void retrieve_contact(Contact &s, const char * filename)
{
std::ifstream ifs(filename);
boost::archive::text_iarchive ia(ifs);
ia >> s;
}
这是联系类中的序列化功能看起来像:
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & m_CompanyName;
ar & m_FirstName;
ar & m_LastName;
ar & m_PhoneNumbers;
}
(m_companyname,m_firstname和m_lastname是std :: string,m_phoneNumbers是std :: vector)那么,是否可以以某种方式检索联系而不跟踪联系人数量?还是您可以建议我另一种保存和检索联系人的方法,并保存在不同的时间?另外,如何编辑保存的文件以修改联系人?
是的,对标准容器使用预定义的序列化。因此,例如
#include <boost/serialization/vector.hpp>
,然后
void retrieve_contact(std::vector<Contact>& s, const char * filename)
{
std::ifstream ifs(filename);
boost::archive::text_iarchive ia(ifs);
ia >> s;
}
相关文章:
- 如何检索由带通配符的字符串索引的对象
- 用于从可能不存在的容器中检索对象的 API 设计
- 在 c++ 中使用指向对象的指针检索数据
- 通过 std::bind 从对象成员检索值
- 将 JSON 对象作为参数在 JNI 中传递给 CPP,并在 CPP 中检索 JSON 对象的数据
- C++ 从树中检索对象
- 检索不同类型的对象指针
- 如何在Boost Serialization中检索多个对象值
- 使用Boost序列化保存和检索多个对象
- C++ 无法检索自定义矢量中的对象
- 如何通过先前存储的ID从结构对象中检索值?C
- 在另一个中检索JSON对象
- c++使用字符串句柄对对象进行通用存储和检索
- 从C 添加和检索类的对象
- 如何从wow64进程中检索特定内核对象的64位地址
- 检索在函数内部使用运算符new分配的类指针对象成员的值时出现的问题
- 从数据库中以 blob 数据类型形式存储的原始图像数据中检索 CImage 对象
- QML:如何检索默认字体对象
- 从继承的对象检索信息
- 从 win32api C++中的 LDAPMessage 对象检索'pre windows 2000 logon'名称