gpt4 book ai didi

c++ - Tokyo Cabinet 和可变大小的 C++ 对象

转载 作者:太空狗 更新时间:2023-10-29 23:31:49 24 4
gpt4 key购买 nike

我正在使用 C++ 构建一个系统,该系统使用 Tokyo Cabinet(C 中的原始 API)。问题是我想存储一个类,例如:

    class Entity {
public:
string entityName;
short type;
vector<another_struct> x;
vector<another_struct> y
vector<string> z;
};

问题是 vector 和字符串的长度是可变的。当我将 void* (我的对象)传递给 Tokyo Cabinet 以便它可以存储它时,我还必须以字节为单位传递对象的大小。但这并非易事。

确定对象字节数的最佳方法是什么?或者在 Tokyo Cabinet 中存储可变长度对象的最佳方式是什么。

我已经在考虑寻找序列化库。

谢谢

最佳答案

您不能将非 POD C++ 结构/类视为原始字节序列 - 这与使用指针或 std::stringstd::vector< 无关,尽管后者实际上保证它会在实践中中断。您需要先将对象序列化为一系列字符 - 我建议 Boost.Serialization一个好的、灵活的跨平台序列化框架。

关于c++ - Tokyo Cabinet 和可变大小的 C++ 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1302628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com