C++ 写多个protobuf消息:1个消息具有1个重复属性,还是写不同的消息?

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; } 在一个文件中写

我需要在一个文件中写入多个protobuf消息

我看到了关于的帖子,想知道是否最好使用它(或者类似它的东西,另一种类型的定界),或者制作一个“超级消息”,只包含我需要作为重复属性多次写入的消息

syntax = "proto2";
package test;

message myMessage {
  required int32 TimeStamp = 1;
}
message Container {
  repeated myMessage messages = 1;
}
在一个文件中写入多个
myMessage
是更有趣的,还是在一个
容器中写入重复的
消息

我认为使用read/write DelimitedFrom更优化(因为我只能追加最后一条消息),但使用repeated属性更容易,但要
序列化到流
我认为我必须通过整个
容器


我认为不可能只序列化消息的一部分以将其附加到输出文件,因为我从未见过它,但我可能是错的

就像您所说的,这两个选项都是可能的

对于少数myMessages,容器是简单的解决方案。这是因为在读回文件时,您不必编写代码来挑选单独的消息

是的,你必须通过整个集装箱。这就是myMessages的数量发挥作用的地方。如果这是一个很大的数字,你最好一次序列化一条myMessage。将其附加到文件,并可能将其刷新到磁盘