9

Cython 为我们提供了一种导入 C++ 标准库数据结构的简单方法,例如:

  from libcpp.vector cimport vector
    from libcpp.utility cimport pair

但是 C++11: 等引入的新容器std::unordered_mapstd::unordered_set?它们是否以相同的方式支持?我找不到合适的导入语句。

4

2 回答 2

22

当前的 cython 版本允许它们。

确保您setup.py包含以下内容:

ext_module = Extension(
    "foo",
    ["foo.pyx"],
    language="c++",
    extra_compile_args=["-std=c++11"],
    extra_link_args=["-std=c++11"]
)

然后你可以使用

from libcpp.unordered_map cimport unordered_map

就像任何其他 STL 类一样。

于 2015-05-21T07:39:12.563 回答
1

Cython 默认不支持它们,但您可以按照https://github.com/cython/cython/blob/master/Cython/Includes/libcpp/map.pxd的结构创建自己的界面。

Cython 现在支持 unordered_map 和 unordered_set 从0.20.2 开始

from libcpp.unordered_map cimport unordered_map
from libcpp.unordered_set cimport unordered_set
于 2013-10-08T13:53:47.827 回答