12
我是Cython和C++的noob,所以我有一個關於參數傳遞的問題。我想避免傳遞參數的副本在以下情形: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) # <-- ??
我想方法add_one
剛纔修改v
「就地」。我相信C++,你可以通過預先與&
進行爭論來實現這一點,這意味着指針的任何更改都會傳遞給指針。這樣,你就不必擔心傳遞指針或實際的對象,即
add_one(v); # in c++
我可以做同樣的在用Cython,還是我給ARG類型明確更改爲參考,而不是,即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