2017-08-16 80 views
0

我使用向量的迭代器。編譯時產生Cython迭代器錯誤

錯誤:

Cannot assign type 'iterator' to 'size_t'

from libcpp.vector cimport vector 

def rotate_list(list ll): 
    cdef vector[int] vect1 = ll  
    cdef size_t t=0 

    t = vect1.end() - vect1.begin() 
    return t 
+1

我可以重現你的問題,但是當我嘗試用玩具類而不是矢量和迭代器構造一個簡單的C++示例時,我無法獲得相同的錯誤。我認爲這是一個晦澀的Cython錯誤,你應該將其報告給https://github.com/cython/cython/issues。 (我看不到一個明顯的workround) – DavidW

+0

儘管你可以最小化你的說明例子 - 它基本上只是'end - vect3.begin()'和適當的'cdef's。這個bug與'set_intersection'無關[ – DavidW

+0

]好吧,'iterator'不是'size_t' ...它們是根本不同的類型。 – TriskalJM

回答

1

它適用於cython版本0.26。