考虑以下消息。
message example {
repeated string text;
}
假设在C ++中,我有一个字符串列表,我将其插入到示例的文本字段中:
exemple aMessage;
std::list<std::string> aList = ... ;
for (std::string anStr : aList)
{
aMessage.add_text(anStr);
}
稍后,如果我访问消息的文本,该字段的排序方式是否与列表相同?当我对其进行序列化并将其发送到某个地方该怎么办?
订单会保持不变吗?
答案 0 :(得分:1)
是的,重复的字段保留了项目的顺序。
来自Google's Protocol Buffers encoding specification:
尽管解析时相对于其他字段的顺序丢失了,但解析时会保留元素相对于彼此的顺序。