gpt4 book ai didi

c++ - Protocol Buffer 如何支持标准容器的序列化/反序列化?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:09 28 4
gpt4 key购买 nike

我们计划用分布式系统设计中使用的 Protocol Buffer 替换 Boost.serialization。 Protocol Buffer 如何支持复杂的数据结构,例如标准容器?

例如,在我们的例子中需要对这样的类进行序列化/反序列化:

class Foo
{
std::vector< std::pair< unsigned int, std::vector< std::pair< int, int> > > > data;
};

最佳答案

Protocol Buffer 使用了一个解析器,它接受一个 .proto 文件并创建适当的序列化例程。参见 this .

更新:您可以将字符串 vector 表示为:

message MyCollection {   
repeated string str = 1;
}

在你的原型(prototype)文件中。

并使用:

std::vector<std::string> my_strings; 
// add strings to vector MyCollection proto;
vector<string>::iterator e = my_strings.end();
for (vector<string>::iterator i = my_strings.begin();
i != e;
++i) {
*proto.add_str() = *i;
}

它应该很容易扩展到另一个集合/集合的集合。

关于c++ - Protocol Buffer 如何支持标准容器的序列化/反序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/684390/

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