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