struct {double age, double height} C++将这个结构体序列化 给出代码
时间: 2024-12-06 20:24:14 浏览: 12
在 C++ 中,将结构体 `struct {double age, double height;}` 序列化通常是指将其转换成二进制文件或字节数组以便于存储或在网络上传输。这里我们可以使用标准库如 `< serialization >` 或第三方库来实现。下面是一个简单的示例,使用 C++ 的 Boost.Serialization 库:
```cpp
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <sstream>
// 定义结构体
struct Person {
double age;
double height;
};
// 序列化
void serialize_to_string(Person person, std::string& output) {
boost::archive::text_oarchive oarchive(output);
oarchive << person.age << person.height;
}
// 反序列化
Person deserialize_from_string(const std::string& input) {
Person person;
std::istringstream iss(input);
boost::archive::text_iarchive iarchive(iss);
iarchive >> person.age >> person.height;
return person;
}
int main() {
Person p = {30.0, 1.8};
std::stringstream ss;
serialize_to_string(p, ss);
// 现在 ss 中包含了序列化的数据
std::string serialized_data = ss.str();
// 可以通过 deserialize_from_string 将其还原回 Person 对象
Person deserialized_p = deserialize_from_string(serialized_data);
return 0;
}
```
在这个例子中,我们先定义了一个 `Person` 结构体,然后分别实现了将其序列化到字符串(`serialize_to_string`)和从字符串反序列化回来(`deserialize_from_string`)的功能。
阅读全文