当前位置: 首页 > news >正文

如何做网站效果更好关键词快速排名seo怎么优化

如何做网站效果更好,关键词快速排名seo怎么优化,发帖效果好的网站,政府门户网站建设的重要性ProtoBuffer是由谷歌研发的对象序列化和反序列化的开源工具,ProtoBuffer和Xml类似,都是数据描述工具,后者使用更为广泛,前者Google内部使用且具有更高的效率。该工具安装和使用都很简单,查看了下网上贴代码的居多&…

ProtoBuffer是由谷歌研发的对象序列化和反序列化的开源工具,ProtoBuffer和Xml类似,都是数据描述工具,后者使用更为广泛,前者Google内部使用且具有更高的效率。该工具安装和使用都很简单,查看了下网上贴代码的居多,这里整理下以便以后使用。

1.安装

sudo apt-get install protobuf-compiler

 

2.说明文档

语法说明请参考:

[1]. Protocol Buffer技术详解(语言规范)

 简单例子请参考:

[1]. Google Protocol Buffers浅析(一,二,三,四)(windows下的使用,linux用户可参考其语法)

[2]. ProtoBuf 常用序列化/反序列化API

 

3. Eclipse CDT下使用ProtoBuffer

编写一个用户信息列表的描述,并完成对象序列化和反序列化操作。

a. 新建项目

建立一个新的c++ project,命名为TestPbuffer,并建立文件夹src, data, proto:

b. 数据描述

在目录proto下添加代码,person.proto,并编辑加入以下代码:

message Person{required string name = 1;required int32  age  = 2;optional string email = 3;enum PhoneType{HOME = 1;MOBILE = 2;WORK = 3;}message Phone{required int64 id = 1;optional PhoneType type = 2 [default = HOME];}repeated Phone phoneNum = 4;
}message UserList{required string name = 1;repeated Person users = 2;
}

Proto文件与xml类似,能够对数据进行格式化的描述,以上的数据描述完成了用户信息记录列表的定义。具体含义请参阅:Protocol Buffer技术详解(语言规范)

c. 生成c++代码

在控制台下跳转到目录proto,然后执行以下编译命令:

$ protoc person.proto --cpp_out=../src/

生成的c++文件person.pb.h和person.pb.cc存放在src下。对象的序列化和反序列化就是通过这两个文件完成操作了。

d. 配置Include和Link

右击project的Propertise->C++ Build->Setting,具体配置如下图所示:

e.编写测试程序

在src目录下添加TestProtoBuffer.cpp文件,并添加以下代码:

//============================================================================
// Name        : TestPbuffer.cpp
// Author      : xiankai.chen
// Version     :
// Copyright   : xiankai.chen@qq.com
// Description : Test proto buffer in C++, Ansi-style
//============================================================================

#include <iostream>
#include <fstream>
#include <string>#include "person.pb.h"using namespace std;int main() {/*write object to file*/UserList user_list;user_list.set_name("用户列表");//add person 1Person* person;Person::Phone *phone;person = user_list.add_users();person->set_name("cxk");person->set_age(30);person->set_email("xiankai.chen@qq.com");phone = person->add_phonenum();phone->set_type(Person::HOME);phone->set_id(13418638333);phone = person->add_phonenum();phone->set_type(Person::MOBILE);phone->set_id(13234444555);//add person 2person = user_list.add_users();person->set_name("lgm");person->set_age(30);person->set_email("77015684@gmail.com");phone = person->add_phonenum();phone->set_type(Person::HOME);phone->set_id(13344655445);phone = person->add_phonenum();phone->set_type(Person::MOBILE);phone->set_id(13765546785);fstream output("./data/myinfo.dat",ios::out|ios::binary);user_list.SerializeToOstream(&output);output.close();output.clear();/*read object from file*/fstream input("./data/myinfo.dat",ios::in|ios::binary);UserList userlist_in;if(!userlist_in.ParseFromIstream(&input)){cout<<"parse error"<<endl;return -1;}cout<<"userlist name: "<< userlist_in.name() <<endl;for(int i = 0; i < userlist_in.users_size(); i++){cout<<"person["<<i<<"] name:"<< userlist_in.users(i).name()<< endl;cout<<"person["<<i<<"]  age:"<< userlist_in.users(i).age()<< endl;cout<<"person["<<i<<"]email:"<< userlist_in.users(i).email()<< endl;for(int j = 0; j < userlist_in.users(i).phonenum_size(); j++){cout<<"person["<<i<<"] phonenum["<<j<<"] type:"<< userlist_in.users(i).phonenum(j).type()<< endl;cout<<"person["<<i<<"] phonenum["<<j<<"] no:"<< userlist_in.users(i).phonenum(j).id()<< endl;}}input.close();input.clear();return 0;
}

 

f.执行测试结果

如下所示

userlist name: 用户列表
person[0] name:cxk
person[0]  age:30
person[0]email:xiankai.chen@qq.com
person[0] phonenum[0] type:1
person[0] phonenum[0] no:13418638333
person[0] phonenum[1] type:2
person[0] phonenum[1] no:13234444555
person[1] name:lgm
person[1]  age:30
person[1]email:77015684@gmail.com
person[1] phonenum[0] type:1
person[1] phonenum[0] no:13344655445
person[1] phonenum[1] type:2
person[1] phonenum[1] no:13765546785

 

g. 工程代码

下载链接:TestPbuffer.tar.gz

 

转载于:https://www.cnblogs.com/cv-pr/p/6296587.html

http://www.lbrq.cn/news/2800783.html

相关文章:

  • 武汉网站营销优化源码凡科建站的免费使用
  • ckplayer怎么上传做网站爱站小工具计算器
  • 税务局网站建设情况汇报百度seo关键词优化工具
  • 南宁企业宣传片制作海淀区seo搜索优化
  • 上海网站建设 分类广告绍兴seo排名外包
  • 深圳网站建设制作设计企业2024年新冠疫情最新消息
  • 全国政府网站建设情况网络优化培训
  • 1688货源网外发手工加工快速优化seo软件
  • 建设银行官方网站下载群排名优化软件
  • wordpress更改密码seo平台是什么意思
  • 哪些公司网站推广能赚钱代发新闻稿的网站
  • 网页网站制作维护商丘seo教程
  • 做网站公司排名电话it行业培训机构哪个好
  • 网站建设域名是什么意思推广策略及推广方式
  • 做网站太麻烦了百度科技有限公司
  • 网页设计期末作品要求小红书怎么做关键词排名优化
  • php做的网站处理速度怎么样营销推广的公司
  • 站长工具seo客户端佛山快速排名seo
  • 上海网站开发开发好的公司北京百度竞价托管公司
  • 网站必须做公安备案么互联网营销工具有哪些
  • 秦皇岛做网站外包360浏览器网页版入口
  • 做ppt配图好用的网站高佣金app软件推广平台
  • bootstrap公司网站百度品牌
  • 三亚建设局网站河南seo技术教程
  • 怎么让自己做的网站让别人看到百度指数是怎么计算的
  • 头像网站模板baidu百度首页官网
  • 160;作者:网站建设&自己建站的网站
  • 专业做网站的人网络营销推广渠道有哪些
  • 导航网站 黄色托管竞价账户哪家好
  • 可视化网站开发系统介绍电子商务网络营销
  • Chrome 插件开发实战:从入门到进阶
  • 打工人项目日报计划
  • 基于Spring Cloud Gateway动态路由与灰度发布方案对比与实践指导
  • 19.web api 10
  • 【科研绘图系列】R语言绘制平滑曲线折线图
  • 新手向:使用STM32通过RS485通信接口控制步进电机