C++ 技术中心

   :: 首页 :: 联系 ::  :: 管理
  158 Posts :: 0 Stories :: 85 Comments :: 0 Trackbacks

公告

郑重声明:本BLOG所发表的原创文章,作者保留一切权利。必须经过作者本人同意后方可转载,并注名作者(天空)和出处(CppBlog.com)。作者Email:coder@luckcoder.com

留言簿(17)

搜索

  •  

最新随笔

最新评论

评论排行榜

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;
}


posted on 2014-12-09 19:14 C++技术中心 阅读(19072) 评论(0)  编辑 收藏 引用 所属分类: 其他编程

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理