关于战网BLZBNTBTS0000005D的解决方法
2015-08-25 22:18
267 查看
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
下面是對上述數據結構進行調用/輸出/序列化 的C++程序示例:
Person person;
person.set_name("John Doe");
person.set_id(1234);
person.set_email("jdoe@example.com");
fstream output("myfile", ios::out | ios::binary);
person.SerializeToOstream(&output);
輸入/以字符串導入的C++程序示例:
Person person;
person.set_name("John Doe");
person.set_id(1234);
person.set_email("jdoe@example.com");
fstream output("myfile", ios::out | ios::binary);
person.SerializeToOstream(&output);
從上面的例子我們可以看到, Protocol Buffer實際上就是 C++裡面的一個結構型, 所以它的運行速度比起 XML文件會快上非常大的倍數. 因為XML 需要從文件中讀取出字符串,再轉譯成 XML 文檔對象結構模型, 然後再從XML 文檔對象結構模型中讀取出指定節點的字符串, 最後再將這個字符串轉換成指定類型的變量, 這樣繁複的處理, 將大大消耗 CPU 資源. 而Protocol Buffer只需要簡單地將一個二進制序列, 按照指定的格式讀取到 C++ 結構類型中去就行了.
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
下面是對上述數據結構進行調用/輸出/序列化 的C++程序示例:
Person person;
person.set_name("John Doe");
person.set_id(1234);
person.set_email("jdoe@example.com");
fstream output("myfile", ios::out | ios::binary);
person.SerializeToOstream(&output);
輸入/以字符串導入的C++程序示例:
Person person;
person.set_name("John Doe");
person.set_id(1234);
person.set_email("jdoe@example.com");
fstream output("myfile", ios::out | ios::binary);
person.SerializeToOstream(&output);
從上面的例子我們可以看到, Protocol Buffer實際上就是 C++裡面的一個結構型, 所以它的運行速度比起 XML文件會快上非常大的倍數. 因為XML 需要從文件中讀取出字符串,再轉譯成 XML 文檔對象結構模型, 然後再從XML 文檔對象結構模型中讀取出指定節點的字符串, 最後再將這個字符串轉換成指定類型的變量, 這樣繁複的處理, 將大大消耗 CPU 資源. 而Protocol Buffer只需要簡單地將一個二進制序列, 按照指定的格式讀取到 C++ 結構類型中去就行了.
相关文章推荐
- 静态方法和静态代码块
- 如何用Java回调和线程实现异步调用
- VS2010 C/S模式winForm打包部署.详细! .
- Set Matrix Zeroes
- 数据库中索引的优缺点
- OC-属性
- 选举
- 安卓命令写入图片,微信相册中拿不到
- Android UI设计——ListView控件使用优化(五)
- 字符串全排列问题(递归回溯)
- Android Studio App设置Notification通知
- 8-25
- UVa 11536:Smallest Sub-Array(滑动窗口)
- VS2010 (C#)winform程序打包发布图解(转+自己修改)
- node.js(六) UTIL模块
- Flatten Binary Tree to Linked List
- linux下如何启动sybase
- 命令行参数
- OJ 刷题---串的简单处理
- 二十年目睹之怪状 序