簡體   English   中英

如何從 C++ 消費者的 protobuf 消息中提取 map 字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM