栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

protobuf-c++之-数组使用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

protobuf-c++之-数组使用

proto文件:

// 组件类型数据
message Activity{
    // 子组件列表
    repeated Activity children = 1;
    // 组件的输入/输出参数 属性列表没有使用map,让属性列表可以出现同名,但是数值不同的的参数
    repeated ActivityProperty properties=2;
}

数组的使用:

首先翻看pb.h源码,找到children成员的操作方法:

//返回数组长度
inline int Activity::children_size() const {
  return _internal_children_size();
}
//清空数组
inline void Activity::clear_children() {
  children_.Clear();
}
//在具体的位置插入数组
inline ::workflow::Activity* Activity::mutable_children(int index) {
  // @@protoc_insertion_point(field_mutable:workflow.Activity.children)
  return children_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::workflow::Activity >*
Activity::mutable_children() {
  // @@protoc_insertion_point(field_mutable_list:workflow.Activity.children)
  return &children_;
}
//返回具体位置数组
inline const ::workflow::Activity& Activity::_internal_children(int index) const {
  return children_.Get(index);
}
//返回具体位置数组
inline const ::workflow::Activity& Activity::children(int index) const {
  // @@protoc_insertion_point(field_get:workflow.Activity.children)
  return _internal_children(index);
}
//插入数组
inline ::workflow::Activity* Activity::_internal_add_children() {
  return children_.Add();
}
插入数组
inline ::workflow::Activity* Activity::add_children() {
  ::workflow::Activity* _add = _internal_add_children();
  // @@protoc_insertion_point(field_add:workflow.Activity.children)
  return _add;
}

1、返回数组长度,看源码。

2、清空数组,看源码

3、返回具体位置内容,看源码

4、插入数组,代码如下:

Activity accumulate;
Activity printer;
Activity whileDo;

Activity sequence;
//protobuf 数组的添加
*(sequence.add_children()) = accumulate;
*(sequence.add_children()) = printer;
*(sequence.add_children()) = whileDo;

 总之:protocbuf对数组已经提供了非常丰富的操作方法,翻看源码就可以知晓所有我们需要的操作。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/916849.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号