protobuf repeated数组类型的使用

2023-05-16

http://www.cppblog.com/API/archive/2014/12/09/209070.aspx

protobuf是Google开发的一个序列化框架,类似XML,JSON,基于二进制,比传统的XML表示同样一段内容要短小得多。通过protobuf,可以很轻松的调用相关方法来完成业务数据的序列化与反序列化。protobuf repeated类型相当于std的vector,可以用来存放N个相同类型的内容,文章将简单介绍protobuf repeated的使用。

首先定义一个protobuf结构,如下:

message Person {
  required int32 age = 1;
  required string name = 2;
}

message Family {
  repeated Person person = 1;
}
下面我们以例子简单说明如何使用:

int main(int argc, char* argv[])
{

    GOOGLE_PROTOBUF_VERIFY_VERSION;

    Family family;
    Person* person;

    // 添加一个家庭成员,John
    person = family.add_person();
    person->set_age(25);
    person->set_name("John");

    // 添加一个家庭成员,Lucy
    person = family.add_person();
    person->set_age(23);
    person->set_name("Lucy");

    // 添加一个家庭成员,Tony
    person = family.add_person();
    person->set_age(2);
    person->set_name("Tony");

    // 显示所有家庭成员
    int size = family.person_size();

    cout << "这个家庭有 " << size << " 个成员,如下:" << endl;

    for(int i=0; i<size; i++)
    {
        Person psn = family.person(i);
        cout << i+1 << ". " << psn.name() << ", 年龄 " << psn.age() << endl;
    }

    getchar();
    return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

protobuf repeated数组类型的使用 的相关文章

  • Netty使用Google Protobuf进行编解码

    文章目录 一 概述1 编解码基础2 Netty编解码器3 Protobuf概述 二 Protobuf基本使用1 引入jar包2 下载Protobuf3 编写Student proto4 生成StudentPOJO类5 服务器端6 客户端7
  • Start request repeated too quickly解决方法

    脚本重启时间太快 xff0c 不清楚是什么原因 可能是默认的重启时间为0 1秒 可以添加StartLimitInterval 61 600 xff0c 600表示600秒 span class token punctuation span
  • 消息序列化工具-protobuf介绍及安装使用技巧

    简介 protobuf是google团队开发的用于高效存储和读取结构化数据的工具 xml json也可以用来存储此类结构化数据 xff0c 但是使用protobuf表示的数据能更加高效 xff0c 并且将数据压缩得更小 xff0c 大约是j
  • zeromq 利用protobuf通信

    利用zeromq进行编程时候 xff0c 服务器和客户端的通信 xff0c 利用protobuf时候 之前的项目里面 xff0c 需要对protobuf进行编码解码 其实并不需要如此繁琐 xff0c 直接利用 protobuf里面的 Mes
  • 【ProtoBuf】ProtoBuf 通过 proto 文件生成 cc/h 文件

    参考 xff1a protobuf ProtoBuf 通过 proto 文件生成 cc h 文件的步骤如下 xff08 Linux 下 xff09 xff1a 先通过 protobuf 源文件编译出 protoc 可执行文件 span cl
  • 通讯协议序列化解读(一) Protobuf详解教程

    https www cnblogs com tohxyblog p 8974641 html
  • 消息序列化工具-protobuf介绍及安装使用技巧

    简介 protobuf是google团队开发的用于高效存储和读取结构化数据的工具 xml json也可以用来存储此类结构化数据 xff0c 但是使用protobuf表示的数据能更加高效 xff0c 并且将数据压缩得更小 xff0c 大约是j
  • protobuf 中数据编码规则

    背景 protobuf 是一种跨平台的序列化结构数据的方法 可用于网络数据传输及存储 protobuf 在生成的 C 代码中为 proto 文件中的每个 message 生成了对应的 C 类 并提供了数据成员的读写方法 本文对 protob
  • vs2015的OpenCV3.2.0编译

    我们希望添加第三方功能模块和库或者针对特定cpu和gpu的编译调整优化选项 这样的需求就需要自己去编译opencv了 准备东西 opencv opencv contrib cmake 还有两个文件 因为可能是国内的原因 在configure
  • mac下编译protobuf c++

    由于protobuf官网的文档是英文版的 并且并没有比较详细的说明 可能说得很清楚了 只是我这种英文渣看不懂 学习起来着实费了一翻功夫 在此 记录一下学习过程 希望尽量详细 一 编译过程需要的工具 1 protobuf源码 下载地址 htt
  • protobuf版本冲突问题解决

    1 proto caffe pb h 17 2 error error This file was generated by an older version of protoc 如果你装有anaconda 以及tensorflow 或者在
  • proto文件生成教程

    来源 https www cnblogs com jbw752746541 p 10973200 html 首先贴一下Protobuf各个版本历史下载链接 https github com protocolbuffers protobuf
  • gRPC那点事

    什么是 gRPC gRPC gRPC Remote Procedure Call 是一种高性能 开源的远程过程调用 RPC 框架 它允许分布在不同计算机上的应用程序能够像调用本地方法一样进行通信 从而实现了在分布式系统中进行高效的通信 传统
  • 解决protobuf内存泄漏的3种办法

    1 protobuf对象是如何释放 数组 内存的 毫无疑问是 通过调用析构函数 只要让protobuf定义的对象调用析构函数 无论嵌套了多少层数据 包含了多少个数组都可以释放new出来的内存 2 protobuf对象Clear 接口和STL
  • protobuf反射详解及应用(pb/json相互转换)

    关于protobuf的使用 编码原理 编码原理应用 可以分别参见以下文章 Python 操作 protobuf 常见用法 linux环境下protobuf的安装与使用 Protobuf编码规则详解 protobuf编码原理及其在schema
  • Protobuf(Protocol Buffers)超详细入门教程(跨平台序列化, Java)——更新于2022.01

    目录 相关教程 相关文献 安装 C Installation Unix 环境 Protobuf3 0基础上手例子 相关教程 Protobuf Protocol Buffers 超详细入门教程 跨平台序列化 C CMake 更新于2022 0
  • protobuf c++编程笔记

    文章目录 字段内容的定义 修饰符 字段类型 引用方式 不同字段的方法 1 optional修饰的基本类型 2 optional修饰的对象类型 3 repeated修饰的基本类型 4 repeated修饰的对象类型 序列化 反序列化 字段内容
  • 【Protobuf】pb中类型字段不匹配问题

    文章目录 背景 结论 原始数据 测试1 测试2 背景 客户端更新proto 新增message字段 探索新增字段的数据类型和标签对服务端反序列化数据的影响 结论 新增字段数据类型与服务端相同标签数据类型 不同 无法获取数据 但是不报错 相同
  • Protobuf(二)proto3语法格式

    proto文件有两种语法标准 proto2和proto3 我们以proto3为例 其语法格式如下 message
  • 【转】protoc-go-inject-tag 作用

    时间 2022 03 01 本文章向大家介绍 转 protoc go inject tag 作用 主要包括 转 protoc go inject tag 作用使用实例 应用技巧 基本知识点总结和需要注意事项 具有一定的参考价值 需要的朋友可

随机推荐

  • 拷贝来一篇鸡血,且干了这杯酒~~真香

    1 技术的提升仅是量的积累 xff0c 思想的提升才是质的飞跃 xff01 老男孩 2 智慧源于多角度视野 xff0c 能力在于有多种选择 老男孩 3 基础不牢 xff0c 地动山摇 xff01 老男孩 4 相信可能你就无限接近可能 xff
  • C++11和c++14 新特性

    https www jianshu com p b8a36ff7ac27 1 nullptr nullptr 出现的目的是为了替代 NULL 传统 C 43 43 会把 NULL 0 视为同一种东西 nullptr 关键字 xff0c 专门
  • c++11并发与多线程(第一讲)

    一 xff1a 并发 进程的基本概念 并发 xff0c 线程进程要求必须掌握 1 1 并发 两个或者更多任务 xff08 独立的活动 xff09 同时发生 xff08 进行 xff09 xff1a 一个程序同时执行多个独立的任务 以前计算机
  • c++11并发与多线程(第二讲)

    范例演示线程运行的开始和结束 程序运行起来 xff0c 生成一个进程 xff0c 该进程所属的主线程开始自动运行 xff1b 实际上是主线程执行 xff0c 主线程从mian函数开始执行 xff0c 函数返回则线程执行结束 include
  • c++11多线程编程(第三讲)

    include lt iostream gt include lt thread gt include lt string gt using namespace std 自己创建一个线程 xff0c 也需要从一个函数开始运行 xff1b v
  • Prometheus 到底 NB 在哪里?- 每天5分钟玩转 Docker 容器技术(84)

    本节讨论 Prometheus 的核心 xff0c 多维数据模型 我们先来看一个例子 比如要监控容器 span style background color rgb 216 216 216 webapp1 span 的内存使用情况 xff0
  • 解读人生的四种汉堡模型

    解读人生的四种汉堡模型 自然界给了每一个人幸福的机会 xff0c 人们都知道 xff0c 却不知如何得到它 克劳狄 年度最重要的壁球赛就要临近了 我每天的训练已经极度艰苦 xff0c 同时还要严格控制饮食 尽管我的饮食习惯已经相当健康 xf
  • 进程间通信———共享内存的原理

    这篇写的不错给出链接 https blog csdn net ljianhui article details 10253345 下图是两个进程间使用共享内存通信的示意图 xff1a 进程A和进程B在操作系统os中都有自己的虚拟内存空间 这
  • linux进程间通信-共享内存

    linux进程间通信 共享内存 一 共享内存介绍 共享内存可以从字面上去理解 xff0c 就把一片逻辑内存共享出来 xff0c 让不同的进程去访问它 xff0c 修改它 共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式
  • Linux ipcs命令与ipcrm命令的用法详解

    以下是对Linux中的ipcs命令与ipcrm命令的用法进行了介绍 xff0c 需要的朋友可以过来参考下 是linux uinx上提供关于一些进程间通信方式的信息 xff0c 包括共享内存 xff0c 消息队列 xff0c 信号 ipcs用
  • c++11多线程编程 condition_variable wait notify_one notify_all 第八讲

    1 条件变量std condition variable wait notify one notify all wait 用来等一个东西 1 如果第二个参数返回值是true xff0c 那么这一行就继续往下运行 2 如果第二个参数返回值是f
  • c++11多线程 async、future、packaged_task、promise 第九讲

    1 std async std future创建后台任务并返回 2 std packaged task 3 std promise 4 小结 一 std async std future创建后台任务并返回 希望线程返回一个结果 xff1b
  • c++11多线程 windows临界区、其他各种mutex互斥量 第十二讲

    1 windows临界区 2 多次进入临界区实验 3 自动析构技术 4 recursive mutex递归的独占互斥量 5 带超时的互斥量std timed mutex和std recursive timed mutex include l
  • python 入门 第一讲 9种数据类型

    python语言简洁 计算1 100的整数和 result 61 0 for in range 1 100 result 43 61 i print s 计算并输出n xff01 def fact n if n 61 61 1 return
  • python 入门 第二讲 读取日志文件分析

    https www bilibili com video av77410524 p 61 29 计算传感器日志文件中温度数据的平均值 日志文件包含1万条数据温度数据在文件的第3列输入 xff1a 日志文件 sensor data txt输出
  • python 入门 第三讲 读取中文分析

    统计中文词语出现的次数 以政府一号文件为例 xff0c 统计出现的中文词语数量按照一定标准输出 xff0c 如出现次数等需要解决中文分词问题 xff0c 如 xff1a 这是一门好课 gt 这是 一门 好课 输入 xff1a 2018年一号
  • docker命令

    1 docker version docker version 显示 Docker 版本信息 docker version 例如 xff1a span class token comment docker version span Clie
  • python 入门 第四讲 基本数据类型

    python主要包括9中基本数据类型 数值类型 xff1a 整数 浮点数 复数字节类型 xff1a 字符串 字节串组合类型 xff1a 集合 元祖 列表 字典 为什么会出现不确定尾数 xff1f 计算机 不确定尾数问题来源于浮点数在计算机中
  • Linux - Shell - 在多个文件中查找关键字

    https www cnblogs com xy14 p 11735343 html 1 概述 在多个文件中 查找内容 2 想干啥 目的 在 多个文件 中 查找内容准备 之前在 单个文件里 查找过内容 工具 awk 前提 文件有固定格式查找
  • protobuf repeated数组类型的使用

    http www cppblog com API archive 2014 12 09 209070 aspx protobuf是Google开发的一个序列化框架 xff0c 类似XML xff0c JSON xff0c 基于二进制 xff