gpt4 book ai didi

python float to c++ double 使用 BOOST

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:43:14 25 4
gpt4 key购买 nike

我是 python C++ 接口(interface)的新手。我在 python 文件中有一个列表和浮点变量的字典。我正在将这个 python 对象提取到 c++ 变量中。能够将列表提取到 vector 变量中。但我无法对浮点型做同样的事情。

这是我在 dict.py 中的字典

ATM__INTERPOLATION_CUBE = {
"xOrigin": xOrigin,

"yOrigin": yOrigin,

"zOrigin": zOrigin,

"xEnd" : xEnd,

"yEnd" : yEnd,

"zEnd" : zEnd,

"point_xdensity":point_xdensity,

"point_ydensity":point_ydensity,

"point_zdensity":point_zdensity,

"short_Space_x" : 0.25,

"short_Space_y" : 0.25,

"short_Space_z" : 0.25}

ATM__TYPE = "3D_CUBE"

在我的 C++ 脚本中,我创建了一个 python 字典类型的对象 myconfig。

python::dict myconfig = ctl->scanConfig("ATM__INTERPOLATION_CUBE", python::dict(), True);

然后我创建一个 python 列表并将每个列表存储到一个新的 python 列表中

>

python::list xOrigin_list(myconfig["xOrigin"]);
>python::list yOrigin_list(myconfig["yOrigin"]);

然后我使用循环将 python 列表提取到我的 c++ vector 变量中

> for(init;condt;incr)
> xOrigin.push_back(python::extract <double>(xOrigin_list[i]));
> yOrigin.push_back(python::extract<double>(yOrigin_list[i]));

但上面的过程不适用于 float 或 long :(

python::long short_Space_x_fl(myconfig["short_Space_x"]);

> short_Space_x = python::extract<double>(short_Space_x_fl);

它给我一个错误。有人可以告诉我如何从 python 中提取 float/long 类型的值并存储在 c++ double 变量中吗?

var.cc:18:11: error: expected unqualified-id before ‘long’

提前致谢

最佳答案

只有当要将列表提取到 vector 中时,上述用法才有效。但是对于提取单个数据(int、float、long),提取语法很简单,

double var_name = python::extract<double>(python_dict_obj["python_key"]);

这会将字典中给定键的浮点值存储到c++的变量中

关于python float to c++ double 使用 BOOST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25489429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com