Google Protocol Buffer在QT Creator使用教程(五)repeated用法

一、对于同一段数据,有些情况需要重复利用,并赋予对应的值。比如,需要一个班级所有人的姓名和年龄,在Google protocol buffer数据中,repeated方法可以重复利用姓名和年龄这两个定义的数据。下面举例说明。

二、proto文件如下所示:

message person
{
required string name=1;
optional int32   age=2;
}
message persons
{
repeated person p=1;
}

三、在QT creator中的程序如下:

#include"test_person.pb.h"
using namespace std;
#include"iostream"
int main()
{
 persons ps;

 person *p1=ps.add_p();//添加第一个人
 p1->set_age(18);
 p1->set_name("djx");

 person *p2=ps.add_p();//添加第二个人
 p2->set_age(19);
 p2->set_name("tony");

 string str;
 ps.SerializeToString(&str);//将repeated结构中的两个人的信息序列化

 persons ps1;
 ps1.ParseFromString(str);//反序列化
 const person& per1=ps.p(0);//取第一个人
 cout<<"name:"<<per1.name()<<endl;
 cout<<"age:"<<per1.age()<<endl;

 const person& per2=ps.p(1);//取第二个人
 cout<<"name:"<<per2.name()<<endl;
 cout<<"age:"<<per2.age()<<endl;

}

三、程序执行结构如下:

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值