如何在SWIG中将矢量的锯齿状C++向量转换为Python
How to convert (typemap) a jagged C++ vector of vectors to Python in SWIG
用于将向量返回类型的交错C++向量转换为 Python 列表的 SWIG 类型图是什么?
std::vector<std::vector<int>>
在绑定 .i 文件中,放置以下类型映射:
%typemap(out) std::vector<std::vector<int>>&
{
for(int i = 0; i < $1->size(); ++i)
{
int subLength = $1->data()[i].size();
npy_intp dims[] = { subLength };
PyObject* temp = PyArray_SimpleNewFromData(1, dims, NPY_INT, $1->data()[i].data());
$result = SWIG_Python_AppendOutput($result, temp);
}
}
SWIG 中有内置支持,但它返回的是元组而不是列表。 但是,这对您来说可能就足够了:
%module test
%{
#include <vector>
%}
%include <std_vector.i> // built-in support
%template() std::vector<int>; // declare instances of templates used to SWIG.
%template() std::vector<std::vector<int> >;
%inline %{ // Example code.
std::vector<std::vector<int> > func()
{
std::vector<std::vector<int> > vv;
std::vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
vv.push_back(v);
v.clear();
v.push_back(4);
v.push_back(5);
vv.push_back(v);
return vv;
}
%}
结果:
>>> import test
>>> test.func()
((1, 2, 3), (4, 5))
相关文章:
- 宽度为奇数的16位纹理为片状
- 在 c++ 中,有一种方法可以创建一个包含地图作为值的树状地图?
- 如何解析表示树状数据结构的字符串
- 将文本文件解析为树状数据结构
- MFC 中的抗锯齿
- 如何指示结构成员没有锯齿?
- 在树状视图中双击后焦点丢失
- glReadPixels() 不返回抗锯齿图片
- 在Qt3D中禁用抗锯齿
- 从锯齿状数组读取
- 如何获得C - 模板状行为,但仅允许实例化两种特定类型
- 问题创建和返回锯齿状阵列(错误std :: bad_array_new_length)
- SFML在Pong Clone(OS X)中进行一些锯齿状的性能
- c#中的c++锯齿状数组切片
- 多种类型的锯齿状阵列
- 直接X 11锯齿状边缘
- 类的锯齿状数组
- 如何在SWIG中将矢量的锯齿状C++向量转换为Python
- 多维锯齿状地图
- 平滑圆形面膜.去除锯齿状边缘