您的位置:首页 > 其它

关于战网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++ 結構類型中去就行了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: