我想用C ++编写一些代码,它向python返回一个向量。我尝试了以下示例,但它返回以下对象。
<Swig Object of type 'std::vector< float > *' at 0x100331f90>
如何将其转换为列表以便我可以在python中使用它?
我的代码:
/* File: example.i */
%module example
%{
#define SWIG_FILE_WITH_INIT
#include "example.h"
%}
std::vector<float> Test(int n);
/* File: example.cpp */
#include <vector>
std::vector<float> Test(int n){
std::vector<float> a(4);
a[1] = 1;
a[2] = 24234;
return a;
}
/* File: example.h
http://www.swig.org/Doc1.3/Python.html#Python_nn4
*/
#include <vector>
std::vector<float> Test(int n);
答案 0 :(得分:0)
我找到了这个问题的答案。为这个问题找到合适的关键词很难。
解释了解决方案here。
%include <std_vector.i> //Takes care of vector<type>
仍然缺少的是以下三行
namespace std
{
%template(FloatVector) vector<float>;
}
总的来说,我的例子。我现在看起来像这样:
/* File: example.i */
%module example
%include "std_vector.i"
%{
#define SWIG_FILE_WITH_INIT
#include "example.h"
%}
namespace std
{
%template(FloatVector) vector<float>;
}
std::vector<float> Test(int n);