如何初始化协议缓冲区中的重复元素
How to initialize a repeated element in protocol buffer?
假设我有这个消息。
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)
后跟循环提供太多的速度优势。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- C++字符*缓冲区的大小
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 将指针作为缓冲区传递到第一个字符串元素
- 跳过元素缓冲区中的索引
- 如何在协议缓冲区中初始化排序和过滤重复的元素
- Direct3D 多个顶点缓冲区,非交错元素
- 基于数组的有界缓冲区中的空元素
- 具有相同元素的两个常量缓冲区
- 如何初始化协议缓冲区中的重复元素
- 仅修改VBO缓冲区数据的特定元素类型
- 访问字符串映射和Boost循环缓冲区的元素