将 google::protobuf::RepeatedField<float> 转换为浮点数

Converting google::protobuf::RepeatedField<float> to float

我正在使用Google的Protobuf创建一个名为Foo的C++class,如下:

message Foo
{
    optional int32 x = 1;
    repeated float y = 2;
}

在创建的 C++ class 中,这将创建类型 const google::protobuf::RepeatedField<float> 的成员变量 y。现在,在我的 C++ 代码中,我想访问名为 fooFoo 实例的 xy 变量。在此示例中,y 的长度为 1,即它包含一个浮点数:

int a = foo.x();
float b = foo.y();
float c = foo.y()[0];

在这里,第一行有效,但第二行和第三行都出现错误。我只是想获取存储在 y.

中的这个浮点数的值

我应该怎么做?

谢谢!

您可以迭代 Y-s

for(auto value : Foo.y())
{
    //do something with value here
}

你想要:

float b = foo.y(0);

(堆栈溢出抱怨我的回答太短...)