我是python c ++界面的新手。我在python文件中有一个list和float变量的字典。我将这个python对象提取到c ++变量中。能够将列表提取到矢量变量中。但我不能对浮动类型做同样的事情。
这是我在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 dict类型的对象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 ++向量变量中> for(init;condt;incr)
> xOrigin.push_back(python::extract <double>(xOrigin_list[i]));
> yOrigin.push_back(python::extract<double>(yOrigin_list[i]));
但上述程序不适用于浮动或长期:(
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’
提前致谢
答案 0 :(得分:2)
仅当将列表提取到向量中时,上述用法才有效。但是为了提取单个数据(int,float,long),提取语法是直截了当的,
double var_name = python::extract<double>(python_dict_obj["python_key"]);
这会将给定键的字典中的float值存储到c ++
的变量中