如何在 C++ 中迭代谷歌 protobuf 地图?

NIT*_*KAR 4 c++ protocol-buffers

我有以下形式的地图:

const google::protobuf::Map<string, nrtprofile::RedisNewsMetric> map=redisNewsMessage.ig();
Run Code Online (Sandbox Code Playgroud)

我应该如何遍历地图以获取所有键和相应的值?

Cal*_*eth 8

google::protobuf::Map以与a完全相同的方式遍历a std::unordered_map

for (auto & pair : map)
{
    doSomethingWithKey(pair.first);
    doSomethingWithValue(pair.second);
}
Run Code Online (Sandbox Code Playgroud)

如果您有 C++17 编译器,则可以使用结构化绑定进一步拆分

for (auto & [key, value] : map)
{
    doSomethingWithKey(key);
    doSomethingWithValue(value);
}
Run Code Online (Sandbox Code Playgroud)