我是SWIG的新手,想要包装C ++类并在python中使用它。作为练习,我正在编写一个Vector类(类似于STL中的类)。现在我想在python环境中输入向量名后打印出向量的元素。
类似于:
>>>v
1 2 3 4
我怎样才能做到这一点?
答案 0 :(得分:0)
您可以在.i文件中使用%template
指令和std_vector.i
库。
参考:http://www.swig.org/Doc3.0/SWIGDocumentation.html#Library_std_vector
#include <vector>
std::vector<int> GetVectorInt();
std::vector<int> GetVectorInt()
{
std::vector<int> vOutput;
for(int i = 0; i < 10; i++)
vOutput.push_back(i);
return vOutput;
}
%module myModule
%{
#include "myModule.h"
%}
%include "std_vector.i"
%template(IntVector) std::vector<int>;
%include "myModule.h"
>>> my_vector = myModule.GetVectorInt()
>>> my_vector
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)