【问题标题】:How to convert a Python deque to a C++ container?如何将 Python 双端队列转换为 C++ 容器?
【发布时间】:2020-10-12 20:50:39
【问题描述】:

我必须将 Python 双端队列传递给 C++ 函数,但我找不到任何关于如何将双端队列转换为 C++ 容器的文档(对于这种情况,双端队列或向量都可以)。到处搜索,但我找不到解决方案。必须有一个简单的方法来做到这一点吗? 谢谢

【问题讨论】:

  • 该网站没有说明如何将 Python deque 复制到 C++ deque?
  • 一个基本问题是 c++ 容器保存特定类型,而 Python 容器可以保存任何类型。你必须决定你想做什么。

标签: python c++ python-c-api deque python-extensions


【解决方案1】:

没有“简单的方法”。您需要以特定于数据的方式手动(或者可能使用某种接口生成器)来完成。

查看C API Introduction — Python 3.8.3 documentation,了解 C 级 Python 数据模型的概述。它与任何 C++ 类型完全无关。

您需要通过 Python C API 以某种方式从 Python 对象中提取您需要的数据,并从中构建您需要的 C++ 结构。

SWIG 可以在这里为您提供帮助。看看SWIG-4.0 Documentation——它有a section关于如何在 C++ 类型和来自脚本语言的类型之间进行转换。

【讨论】:

  • 谢谢!这与 boost 和标准 API 等其他工具兼容吗?
  • AFAICS,SWIG 以独立于库的方式运行。因此,您处理的具体类型无关紧要——标准、增强或其他任何类型。
猜你喜欢
  • 1970-01-01
  • 2011-08-12
  • 2012-07-25
  • 2023-03-28
  • 2011-03-18
  • 2019-01-02
  • 2020-10-29
  • 2020-08-04
  • 2020-05-24
相关资源
最近更新 更多