gpt4 book ai didi

c++ - 如何将重复的字段部分合并到消息中?

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

我有两条相同类型的消息 MyMSG,我们将它们称为 AB:

message MyMSG {
repeated int msg_bucket = 1;
}

我想复制一个msg_bucket(只是一个,比如A.msg_bucket(0))到AB。不是 MergeFrom 而是部分合并。

我应该使用哪个函数?

最佳答案

作为Marc Gravell♦指出,没有自动化可以做到这一点。

最简单的方法是,简单地将一个新的msg_bucket 添加到您希望它“合并”到的容器中(B),然后分配相应的值,或者复制,以防您有消息而不是 int。

另一种方法 是,将 B 序列化到一个容器中,创建一个新的 MyMSG C,它只包含您想要的字段合并,将新容器的序列化附加到序列化的 B,最后从序列化数据中解析 B

MyMSG A, B, C; //considered initialized as described above
std::vector<char> serializedContainer(500);
B.SerializeToArray(serializedContainer.data(), serializedContainer.size());
C.SerializeToArray(serializedContainer.data() + B.ByteSize(), serializedContainer.size() - B.ByteSize());
B.ParseFromArray(serializedContainer.data(), B.ByteSize() + C.ByteSize());

关于c++ - 如何将重复的字段部分合并到消息中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26012865/

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