![](/img/trans.png)
[英]How to set a preallocated message as field using reflection in protobuf on C++?
[英]How to extract map field from protobuf message for C++ consumer
我有一個 proto3 文件。 proto 文件中有一條消息包含 map 字段。
proto3
package abc.xyz.testproto
message abc
{
map <string, int32> mapfield = 1;
}
假設作為一個 c++ 消費者,我想讀取這個 map 字段,我需要什么 api 調用才能將這個 map 字段中的這些鍵和值讀取到 c++ 中的字符串和 int 字段中?
我試圖在這里尋找它: https://developers.google.com/protocol-buffers/docs/reference/cpp-generated#map-fields但找不到關於如何使用 map 字段的代碼。 有人可以幫我嗎?
謝謝
它的工作原理幾乎與std::map
相同:
abc c;
(*c.mutable_mapfield())["abc"] = 2; // set value with operator []
for (const auto &ele : c.mapfield()) { // iterate with range for
cout << "key: " << ele.first << ", value: " << ele.second << "\n";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.