您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在C++中,序列化是将对象的状态信息转换为可以存储或传输的格式的过程
示例代码:
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/serialization/vector.hpp>
#include <fstream>
#include <vector>
int main() {
// 保存数据到文件
std::ofstream ofs("data.txt");
boost::archive::text_oarchive oa(ofs);
std::vector<int> data = {1, 2, 3, 4, 5};
oa << data;
// 从文件加载数据
std::ifstream ifs("data.txt");
boost::archive::text_iarchive ia(ifs);
std::vector<int> loaded_data;
ia >> loaded_data;
}
示例代码:
#include <cereal/archives/binary.hpp>
#include <cereal/types/vector.hpp>
#include <fstream>
#include <vector>
int main() {
// 保存数据到文件
std::ofstream ofs("data.bin", std::ios::binary);
cereal::BinaryOutputArchive oa(ofs);
std::vector<int> data = {1, 2, 3, 4, 5};
oa(data);
// 从文件加载数据
std::ifstream ifs("data.bin", std::ios::binary);
cereal::BinaryInputArchive ia(ifs);
std::vector<int> loaded_data;
ia(loaded_data);
}
#include <iostream>
#include <fstream>
#include <stdexcept>
void save_data(const std::string& filename) {
try {
std::ofstream ofs(filename, std::ios::binary);
if (!ofs) {
throw std::runtime_error("无法打开文件");
}
// 执行序列化操作
} catch (const std::exception& e) {
std::cerr << "保存数据时发生错误: " << e.what() << std::endl;
}
}
void load_data(const std::string& filename) {
try {
std::ifstream ifs(filename, std::ios::binary);
if (!ifs) {
throw std::runtime_error("无法打开文件");
}
// 执行反序列化操作
} catch (const std::exception& e) {
std::cerr << "加载数据时发生错误: " << e.what() << std::endl;
}
}
int main() {
save_data("data.bin");
load_data("data.bin");
}
在这个示例中,我们使用了C++的异常处理机制来捕获和记录序列化过程中可能出现的错误。当发生错误时,我们将错误信息输出到标准错误流(std::cerr)。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。