使用带有Google协议缓冲区的std :: map <int,=“”std :: string =“”> </int>

时间:2013-07-14 10:54:32

标签: c++ visual-studio-2010 protocol-buffers

我想知道是否可以使用带谷歌协议缓冲区的地图。 我目前在.proto文件

中有这样的东西
message MsgA
{
required string symbol = 1 ;
optional int32  freq = 2   [default = 0]; 
}

message MsgB
{

   //What should I do to make a map<int,MsgA>
}

我的问题是在MsgB中我想创建一个类型为map :: 关于如何实现这一目标的任何建议?

1 个答案:

答案 0 :(得分:2)

这样做:

message MapEntry
{
    required int32 mapKey  = 1;
    required MsgA mapValue = 2;
}

message MsgB
{
    repeated MapEntry = 1;
}

您必须编写自己的代码才能将地图转换为MsgB,但这应该基本上是微不足道的。