c++函数:
double cpp_func(const std::vector<double>& x) {
return ...;
}我想使用pybind11将这个函数封装到python中,python接受numpy数组作为参数,而x可能非常大,所以我想通过引用或指针传递numpy数组。
发布于 2019-09-09 09:06:12
你想要传入的数组从哪里开始它的生命?如果您可以控制它的创建,那么可以将它设置为std::vector,并对该vector的data()进行数值视图。这样,您就可以同时使用这两个函数:在C++语言中使用向量,在Python中使用numpy数组。
唯一需要注意的是,在numpy视图的生命周期内,向量不应该调整大小(或者您知道它的最大大小,并在创建后立即保留()内存)。
如果向量从不调整大小,那么您可以使向量成为视图的数据成员,以同步生命周期。
https://stackoverflow.com/questions/57785564
复制相似问题