我正在使用Google的Protobuf创建一个名为Foo
的C ++类,如下所示:
message Foo
{
optional int32 x = 1;
repeated float y = 2;
}
在创建的C ++类中,这将创建类型为y
的成员变量const google::protobuf::RepeatedField<float>
。现在,在我的C ++代码中,我想要访问名为x
的{{1}}实例的y
和Foo
变量。在此示例中,foo
的长度为1,即它包含一个浮点数:
y
这里,第一行有效,但第二行和第三行都出错。我只是想获取存储在int a = foo.x();
float b = foo.y();
float c = foo.y()[0];
。
我该怎么做?
谢谢!
答案 0 :(得分:1)
你想:
float b = foo.y(0);
(堆栈溢出正在抱怨我的答案是简短......)
答案 1 :(得分:0)
你可以迭代你的Y-s
for(auto value : Foo.y())
{
//do something with value here
}