c++ - 如何删除重复字段中的任意对象? (protobuf)

标签 c++ protocol-buffers

我在原型(prototype)的重复字段中有一些条目。现在我想删除其中的一些。我怎样才能做到这一点?有删除最后一个元素的功能,但我想删除任意元素。我不能只是交换它们,因为顺序很重要。

我可以与 next 交换直到结束,但没有更好的解决方案吗?

最佳答案

对于 Protobuf v3

iterator RepeatedField::erase(const_iterator position)可以在任意位置删除。

对于 Protobuf v2

您可以使用 DeleteSubrange(int start, int num)RepeatedPtrField 类中。

如果要删除单个元素,则必须将此方法称为 DeleteSubrange(index_to_be_del, 1)。它将删除该索引处的元素。

关于c++ - 如何删除重复字段中的任意对象? (protobuf),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13603878/

相关文章:

c++ - 如何追踪 undefined symbol

c++ - 如何在不复制 C++ 的情况下分配嵌套的 protobuf?

javascript - Windows 上带有 NodeJS 的 Protobuf

c++ - protobuf 与 rapidjson 数据格式

c++ - 发布版本中的程序崩溃

c++ - 这种模式有什么优雅的解决方案?多级搜索

c++ - 如何在 OpenCV 中将 16 位图像转换为 32 位图像?

c++ - (数字)和(-数字)的含义

serialization - 为什么protocol buffer编译器生成的消息类都是不可变的?

java - 使用 Protocol Buffer 只读取一次 Issue 时存储多条记录