List Cython-使用python列表初始化向量[int] < >我想创建一个整数列表,作为一个C++向量实现,并将其初始化为一个空的(Python)列表。 但是,编译代码 from libcpp.vector cimport vector cdef vector[int] s = []

List Cython-使用python列表初始化向量[int] < >我想创建一个整数列表,作为一个C++向量实现,并将其初始化为一个空的(Python)列表。 但是,编译代码 from libcpp.vector cimport vector cdef vector[int] s = [],list,cython,List,Cython,导致以下编译错误:prova.pyx:3:21:无法强制列表键入“vector[int]” 也 导致同样的错误 我能做什么呢?由于这本书随着时间的推移获得了相当多的浏览量,让我们回答一下,尽管它很旧: cdef vector[int] s 自动初始化空的向量[int],它相当于一个空列表(例如打印(“空”如果不是s,否则“填充”)将打印“空”) 但是,由于 cDEF, S >代码>是一个C++ >代码>矢量< /代码>,它不能转换为/从 PyObjult(< []/COD> >)。 这就是分

导致以下编译错误:
prova.pyx:3:21:无法强制列表键入“vector[int]”

导致同样的错误


我能做什么呢?

由于这本书随着时间的推移获得了相当多的浏览量,让我们回答一下,尽管它很旧:

cdef vector[int] s
自动初始化空的
向量[int]
,它相当于一个空列表(例如
打印(“空”如果不是s,否则“填充”)
将打印“空”)

<>但是,由于<代码> cDEF,<代码> S >代码>是一个C++ >代码>矢量< /代码>,它不能转换为/从<代码> PyObjult<代码>(< <代码> []/COD> >)。 这就是分配在.pyx中不起作用的原因

C++向量和Python列表之间的无缝转换只发生在Python脚本(即在<强> Py < /St>,和<强>不< /强> A.pyx)中,其中导入或返回“代码> S/<代码> > < < /P>

cdef vector[int] s