C++ 写多个protobuf消息:1个消息具有1个重复属性,还是写不同的消息?
我需要在一个文件中写入多个protobuf消息 我看到了关于的帖子,想知道是否最好使用它(或者类似它的东西,另一种类型的定界),或者制作一个“超级消息”,只包含我需要作为重复属性多次写入的消息C++ 写多个protobuf消息:1个消息具有1个重复属性,还是写不同的消息?,c++,protocol-buffers,C++,Protocol Buffers,我需要在一个文件中写入多个protobuf消息 我看到了关于的帖子,想知道是否最好使用它(或者类似它的东西,另一种类型的定界),或者制作一个“超级消息”,只包含我需要作为重复属性多次写入的消息 syntax = "proto2"; package test; message myMessage { required int32 TimeStamp = 1; } message Container { repeated myMessage messages = 1; } 在一个文件中写
syntax = "proto2";
package test;
message myMessage {
required int32 TimeStamp = 1;
}
message Container {
repeated myMessage messages = 1;
}
在一个文件中写入多个myMessage
是更有趣的,还是在一个容器中写入重复的消息
我认为使用read/write DelimitedFrom更优化(因为我只能追加最后一条消息),但使用repeated属性更容易,但要序列化到流
我认为我必须通过整个容器
我认为不可能只序列化消息的一部分以将其附加到输出文件,因为我从未见过它,但我可能是错的就像您所说的,这两个选项都是可能的
对于少数myMessages,容器是简单的解决方案。这是因为在读回文件时,您不必编写代码来挑选单独的消息
是的,你必须通过整个集装箱。这就是myMessages的数量发挥作用的地方。如果这是一个很大的数字,你最好一次序列化一条myMessage。将其附加到文件,并可能将其刷新到磁盘