12
저는 Cython 및 C++의 멍청한 놈입니다. 그래서 인수에 관한 질문이 있습니다. 나는 다음과 같은 시나리오에서 인수의 사본을 전달 피하고 싶은 :Cython 및 C++ : 참조로 전달
# somefile.pyx
#distutils: language = c++
from libcpp.vector cimport vector
def add_one(vector[int] vect):
cdef int i
n = vect.size()
for i in range(n):
vect[i] += 1
cdef vector[int] v
for i in range(100000):
v.push_back(i)
add_one(v) # <-- ??
난 그냥 v
을 수정하는 방법 add_one
싶다 "에 장소를." 나는 C++을 믿는다. 포인터를 변경하면 pointee에게 전달된다는 것을 의미하는 &
과 함께 인수를 미리 보류함으로써이를 달성 할 수있다. 그런 식으로, 당신은
add_one(v); # in c++
내가 사이 썬에서 동일한 작업을 수행, 아니면 명시 적으로 대신 참조로 인수 유형을 변경해야 할 수 즉, 포인터 또는 실제 개체를 전달 대해 걱정할 필요가 없습니다 즉 def add_one(vector[int]* vect)
?
[cython-users] (https://groups.google.com/forum/#!forum/cython-users)에서 약간의 관련 질문 [[ "참조 전달에 관한 질문]] (https://groups.google.com/forum/#!topic/cython-users/6c2ixr4xEZA) – iljau