指定された文字列の文字列の STL ベクトルを検索し、見つかった場合は true、そうでない場合は false を返す関数を cython で作成しました。ここではパフォーマンスが非常に重要です。理想的には、データ型ごとに関数を記述する必要がないように、同じことを行うテンプレート化された関数が必要です。これは可能だと確信していますが、テンプレート化された関数の cython 構文がわかりません。(私はC ++でそれを行う方法を知っています)
from libcpp cimport bool
from libcpp.string cimport string
from libcpp.vector cimport vector
from cython.operator cimport dereference as deref, preincrement as inc
cpdef bool is_in_vector(string a, vector[string] v):
cdef vector[string].iterator it = v.begin()
while it != v.end():
if deref(it) == a:
return True
#Increment iterator
inc(it)
return False
誰か手を貸してくれませんか?