cpp list
をcythonで初期化し、値を設定してリストを反復してその値を取得したいとします。一般的なコードは次のようになります。cython - C++リストを反復する方法
from libcpp.list cimport list as cpplist
from cpython cimport array
import array
cdef int[:] c_volumecheck(int n, int comb):
cdef:
array.array match = array.array('i', [0]*(n*comb))
int[:] match_c = match
cpplist[int] arr
asign(match_c, comb, n, arr)
return match_c
cdef void asign(int[:] match, int row, int col, cpplist[int] arr):
cdef int j, i
for j in range(row):
for i in range(col):
arr.push_back(1)
for j in range(row):
for i in range(col):
match[j*col + i] = arr[j*col +i]
をしかし、私はこれをコンパイルするとき、私はエラーを取得する:私はそれはへの道だろうと思った彼らは、CPPベクトルhereを反復方法を考える
Indexing
list[int]
not supported for index typeint
行く。
コードは現在テストされていません。恐れ入りますが、小さな問題がある可能性があります。しかし、それの要点は右です! – DavidW