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
私はあなたの問題を再現することができますが、ベクタとイテレータの代わりにおもちゃクラスを使った簡単なC++の例を作成しようとすると、同じエラーが発生しません。私はこれがあいまいなCythonのバグだと思って、https://github.com/cython/cython/issuesに報告してください。 (私には明らかな作業環境はありません) – DavidW
あなたの例題を最小限に抑えることができます - 基本的に 'end-vect3.begin()'と適切な 'cdef'sです。バグは 'set_intersection'とは関係ありません – DavidW
' iterator'は 'size_t'ではありません...基本的に異なるタイプです。 – TriskalJM