python - pybind11::array_t 是否有(深)复制构造函数?

标签 python c++ pybind11

我有一个现有的 pybind11::array_t,需要进行复制构造。 pybind11 中是否有一个函数允许我对 array_t 进行深度复制?

我知道我可以创建一个新的 array_t,适当调整大小,然后将原始数据复制到其中,但想知道是否已经存在隐藏这些段落的方法。

最佳答案

默认复制构造函数执行深复制,people are actually trying to avoid this :)

要使用复制构造函数,可以通过buffer

using py_arr = pybind11::array_t<double>;
py_arr a;

// do stuff with a, fill it and everything...

auto buffer = a.request(); 
py_arr b = py_arr(buffer);

std::cout << b.data() << " " << a.data() << std::endl; // this won't return the same address twice

关于python - pybind11::array_t 是否有(深)复制构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56575285/

相关文章:

python - Django ElasticSearch仅返回10个行集

python - 需要帮助来修复 Python 中的递归二分搜索函数

javascript - 单击(图像/按钮)将数据存储在...中以实时呈现另一个 html 模板

c++从控制台运行功能

c++ - CreateDXGIFactory2 - 未解析的符号 - dxgi.lib

python - 如果 pandas 中的列在某个日期之前为 NaN,则删除它们

c++ - 检测多字节字符编码

python - 具有自定义持有者类型的 pybind11 多重继承无法转换为基本类型

python - 用 pybind11 包装一个 C++ 分配的实例

numpy - 如何将 datetime64[ns] 数组传递给 pybind11 而不复制