【问题标题】:Passing a Python array to a C++ vector using Swig使用 Swig 将 Python 数组传递给 C++ 向量
【发布时间】:2010-09-27 00:10:06
【问题描述】:

我在 Python 中有一个对象数组

[obj1, obj2, obj3]

我想将它们传递给 C++ 函数以执行一些计算。我正在使用 SWIG 编写我的界面。传递对象的类类型已经在 C++ 中定义。

最好的方法是什么?

【问题讨论】:

  • “最佳方式”给出什么限制?是否允许使用外部库,或者您想通过 Python 的特殊用途设施?

标签: c++ python swig


【解决方案1】:

这取决于您的函数是否已经编写并且无法更改,在这种情况下,您可能需要检查 Swig 文档以查看是否已经存在从 PyList 到 std::vector 的类型映射(我认为有)。如果没有,将 PyObject* 作为函数的参数并使用 Python C API 来操作列表应该可以正常工作。到目前为止,我还没有遇到任何问题。对于自文档,我建议将 PyObject* 类型定义为某种预期类型,例如“PythonList”,以便参数具有某种意义。

这也可能有用:

How to expose std::vector<int> as a Python list using SWIG?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多