2014-11-22 63 views
1

我想创建一个整数列表,并将其作为C++向量实现,并将其初始化为空(python)列表。 然而,编译代码Cython - 使用python列表初始化vector [int]

from libcpp.vector cimport vector 

cdef vector[int] s = [] 

导致以下编译错误:prova.pyx:3:21: Cannot coerce list to type 'vector[int]'

而且

from libcpp.vector cimport vector 

cdef vector[int] s 
s = [] 

导致同样的错误。

我该怎么办?

回答

0

因为这让不少随时间变化的观点,让我们来回答,即使它的老:

cdef vector[int] s 

自动初始化一个空vector[int],这相当于一个空的列表(例如print("empty" if not s else "filled")将打印“空” )。

然而,由于cdefs是一个C++ vector不能被转换到/从一个PyObject(其[]是)。 这就是为什么赋值不起作用里面的.pyx

C++矢量和python列表之间的无缝转换只发生内部Python脚本(即内侧的的.py,和一个.pyx),您会导入的东西返回或拥有s

相关问题