将 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++ 代码中,我想访问名为 foo
的 Foo
实例的 x
和 y
变量。在此示例中,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);
(堆栈溢出抱怨我的回答太短...)
我正在使用Google的Protobuf创建一个名为Foo
的C++class,如下:
message Foo
{
optional int32 x = 1;
repeated float y = 2;
}
在创建的 C++ class 中,这将创建类型 const google::protobuf::RepeatedField<float>
的成员变量 y
。现在,在我的 C++ 代码中,我想访问名为 foo
的 Foo
实例的 x
和 y
变量。在此示例中,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);
(堆栈溢出抱怨我的回答太短...)