【发布时间】:2021-07-29 14:16:18
【问题描述】:
我有一个 .py 文件,其中包含签名浮点数的 3d 列表。
test.py
def myfunc():
tabToReturn = [[[-1.03,5.68],[4.16,-78.12]],[[74.1,8.95],[59.82,1.48]],[[74.1,8.95],[59.82,87.4]]]
print(tabToReturn)
return tabToReturn
我想调用那个 .py,让它返回这个 3d 列表,并将它转换为我的 c++ 程序的 3D 矢量。
这是一个检查我是否得到我们需要的示例:
program.cpp
#include <iostream>
std::vector<std::vector<std::vector<float>>> callPython();
int main(int argc, char** argv)
{
std::vector<std::vector<std::vector<float>>> my3DVector = callPython();
std::cout << "Result we got : "<< std::endl;
for (int i = 0; i < my3DVector.size(); i++)
{
for (int j = 0; j < my3DVector[i].size(); j++)
{
for (int k = 0; k < my3DVector[i][j].size(); k++)
{
std::cout << my3DVector[i][j][k];
std::cout << " ";
}
}
std::cout << "" << std::endl;
}
}
输出应该是:
Result we got :
-1.03 5.68
4.16 -78.12
74.1 8.95
59.82 1.48
74.1 8.95
59.82 87.4
问题是其中一个问题有一个我完全看不懂的答案,而第二个只是关于返回的浮点数,我需要一个3D矢量,我在这里没有找到我需要的东西
另外,这个tutorial 没有解释如何传递一个 3d 列表,甚至根本没有一个列表。
【问题讨论】:
-
是否允许作弊并将 Python 数组输出视为 JSON?
-
@Botje 是的,我可以做任何事情。但如果可能的话,最好避免这种情况,因为我对 JSON 一无所知。
-
有点hacky,但你可以将脚本输出到文件中,然后C++可以读取文件并从中创建向量。一行将是您的一对数字中的一个。或者您可以输出某种格式(提到了 JSON,但也可以使用其他格式)。