3
假設我有這個消息。如何初始化協議緩衝區中的重複元素?
message A {
repeated float w = 1 [packed = true];
}
如何在我的代碼中初始化w?我能做得比這更好嗎?
a = A()
for (int i = 0 ; i < n; ++i)
a.add_w(0);
假設我有這個消息。如何初始化協議緩衝區中的重複元素?
message A {
repeated float w = 1 [packed = true];
}
如何在我的代碼中初始化w?我能做得比這更好嗎?
a = A()
for (int i = 0 ; i < n; ++i)
a.add_w(0);
a.w()
或a.mutable_w()
將返回google::protobuf::RepeatedField<float>
提供了一些額外的選項。例如,您可以撥打a.mutable_w()->Reserve(n)
預先分配空間,以避免每次大小加倍時重新分配的通常策略。您也可以使用Resize(n)
,然後使用mutable_data()
直接訪問底層緩衝區,但這可能不會比Reserve(n)
之後的循環提供更多的速度優勢。