当前位置: 首页 > 知识库问答 >
问题:

如何从protobuf消息中为C使用者提取映射字段

管翼
2023-03-14

我有一个Proto文件。proto文件中有一条消息,其中包含一个map字段。

proto3
package abc.xyz.testproto
message abc
{
    map <string, int32> mapfield = 1;
}

假设作为一个c使用者,我想读取这个映射字段,我需要什么api调用才能将这些键和值从这个映射字段读取到c中的字符串和int字段中?

我试着在这里找:https://developers.google.com/protocol-buffers/docs/reference/cpp-generated#map-fields但找不到如何消耗地图字段的代码。有人能帮我吗?

谢谢

共有1个答案

壤驷鸿祯
2023-03-14

它的工作原理与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";
}
 类似资料:
  • 因此,根据我对Apache Kafka中事务的理解,read_committed消费者不会返回作为正在进行的事务一部分的消息。因此,我猜想,消费者可以选择将其偏移量提交给那些正在进行的事务消息(例如,读取非事务消息),或者可以选择在提交/中止遇到的事务之前不进一步推进。我只是假设(Kafka)允许跳过那些挂起的交易记录,但考虑到它的抵消可能已经很远了,那么消费者在提交时将如何读取它们呢? 更新 考

  • 我对GCP Pub/Sub REST API感到困惑。 背景:我正在尝试使用GCP发布/订阅编写一个应用程序,其中该语言不会作为客户端库退出(我正在尝试使用R)。 因此,我需要依赖提供的REST API:https://cloud.google.com/pubsub/docs/reference/rest 根据我对REST API的理解,我们必须使用pull订阅:https://cloud.goo

  • 我使用的是。我有一个类似的类。我有一个的。 null

  • 我有以下数据结构: <代码>地图 我想从这个复杂的 Map 对象中提取它的值(它本身是另一个字符串 Map)。我目前正在这样做: 上面的实现给了我一个新的Map对象,由于外部循环,它正在迭代。似乎我错过了什么。 如何从复杂的 Map 对象中提取内部 Map 对象? 编辑: 回应AlexWien的评论 原始数据结构: 原始数据结构背后的原因是为一对id(ID1和ID2)存储一个值。ID1和ID2可以

  • 不一致js是一个用于Discord的API,允许开发人员为程序Discord制作插件。这是js中API代码的链接,https://github.com/hydrabolt/discord.js/ 不和谐被设置成像一个服务器,你在那里连接和聊天的渠道,我的问题是我如何从渠道拉消息数据。 他们所做的是在JSON缓存中设置所有通道,在通道中,对象是另一个带有消息对象的缓存(留档所说的)。但是当我到达消息

  • 我用的是Protobuf 3。从文档来看,似乎无法定义嵌套贴图: 我正在尝试创建一种消息类型来表示期权链的定价信息(出价和要价)。对于那些不熟悉这些金融工具的人,基本上我有一套“到期日期(YYYYMMDD)”。在每个过期日期中,我都有一组“strikes(float number;如果需要,可以用字符串表示,我同意)”。在每次行使中,我有两个期权,一个“看跌”和一个“看涨”(这被称为期权的“右”)