在python swig中读取c ++ 2d数组
Reading c++ 2d array in python swig
>C++ part 我有一个类a
,其中包含一个公共变量 2d int 数组b
,我想用 python 打印出来。(我想访问它的方式是a.b
)
我已经能够包装大部分代码,现在我可以在 python 中调用 a 类中的大多数函数。
那么我如何在 python 中读取 b?如何使用numpy.i将其读入numpy数组(我找到了一些有关如何使用非变量函数的解决方案)?有没有办法读取 c++ 库中的任何数组?或者我必须处理接口文件中的每个变量。
现在,当我尝试在 Python 中使用它时,b<Swig Object of type 'int (*)[24]' at 0x02F65158>
附言: 1.如果可能的话,我不想修改cpp部分。
- 我正在尝试访问变量,而不是函数。
所以不要把我推荐给不能真正回答我问题的链接,谢谢。
你会发现,如果你使用一维数组来访问元素,那么在语言之间来回传递东西要容易得多,例如arr[y*WIDTH+x]
.
由于您在C++操作,您甚至可以使用漂亮的operator()(int x, int y)
方法将这些数组包装在类中,以便在C++端使用。
事实上,这是 Numpy 用于数组的内部表示:它们都是一维的。
如果您可以添加C++定义的代码片段(如果使用int**,则为C),您的问题将更容易回答。当你说"2d int array"时,你是指一般的int**吗?数组大小是否提前知道?
无论如何,您可能可以使用numpy.i,但这取决于数组的细节。
看到这个有点相关的问题: 摆动和多维数组
相关文章:
- 2D数组来自文本输入,中间有空格
- 如何使用用户输入在C++中正确填充2D数组
- 如何在C++中检查2D数组中负值的输入验证
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- 如何将以逗号和空格分隔的整数读取到 2D 数组中?
- 如何在C++函数中声明静态 2D 数组?
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- 使用矢量将文本文件中的输入存储到 2D 数组中
- 获取 2D 数组 c++ 中的所有数字对
- 这是使用回溯的 nqueen 问题,但我使用了动态 2d 数组,我的程序编译良好,但不返回任何输出
- 如何在构造函数中使用初始值设定项设置具有相同值的 2d 数组?
- 在 Python 和 c++ 2d 数组初始化之间.这是怎麽?为什么呢?
- 如何创建一个所有行大小不同的 2D 数组,并且用户将指定每行将有多少个元素?
- 使用指针算法修改函数中的 2D 数组
- 在C++中初始化和打印 2D 数组
- 有没有办法使用输入的维度初始化 2d 数组中的所有项目而不循环C++?
- C++ 2D 数组写入多个位置
- 检测到堆损坏:在正常块 c++ 动态 2D 数组之后
- 如何从initializer_list初始化 2D 数组
- 交换函数不是在 C++ 中交换 2D 数组的元素