2014-11-22 2 views
1

정수 목록을 만들고 C++ 벡터로 구현하고 빈 (파이썬) 목록으로 초기화하고 싶습니다. prova.pyx:3:21: Cannot coerce list to type 'vector[int]' :Cython - 파이썬 목록으로 벡터 [int] 초기화

from libcpp.vector cimport vector 

cdef vector[int] s = [] 

다음과 같은 컴파일 오류에 이르게 코드를 컴파일 그러나 .

또한

from libcpp.vector cimport vector 

cdef vector[int] s 
s = [] 

같은 오류로 이끈다.

어떻게해야합니까? "빈"

cdef vector[int] s 

자동으로 빈리스트에 해당 빈 vector[int]를 초기화

(예 : print("empty" if not s else "filled") 인쇄 것이다 :이 꽤 많은 시간이 지남에 따라 견해를 가지고 있기 때문에

답변

0

,의는 나이에도 불구하고 대답하자). cdef 때문에 그러나

, s는 C++ ([] 인)을 PyObject로 /로부터 변환 할 수 vector이다. 이 이유는 할당이 .pyx 안에 으로 작동하지 않는 이유입니다.

C++ 벡터와 파이썬 목록 사이의 원활한 전환은 파이썬 스크립트 내부에서 발생한다 (즉 내부 하지 .pyx) 당신이 반환 또는 s을 소유하고 무언가를 가져온 것입니다.