Moh*_*imi 6 c++ protocol-buffers
假设我有这个消息.
message A {
repeated float w = 1 [packed = true];
}
Run Code Online (Sandbox Code Playgroud)
如何在我的代码中初始化w?我能做得比这更好吗?
a = A()
for (int i = 0 ; i < n; ++i)
a.add_w(0);
Run Code Online (Sandbox Code Playgroud)
a.w()或a.mutable_w()将返回google::protobuf::RepeatedField<float>提供一些额外选项的 a 。例如,您可以a.mutable_w()->Reserve(n)提前调用预分配空间,以避免每次大小加倍时重新分配的常用策略。您还可以使用Resize(n)后跟mutable_data()直接访问底层缓冲区,但这可能不会提供太多的速度优势,而不是Reserve(n)您的循环后跟。