使用SWIG生成的Python库时,向量分配器参数错误

Vector allocator argument error while using SWIG generated python library

本文关键字:向量 分配器 参数 错误 库时 Python SWIG 使用      更新时间:2023-10-16

我使用了swig并从C 代码生成了一个Python库,并遇到了以下错误:

typeError:在方法" new_spikegeneratorFromVector"中,类型为'std :: vector&lt的参数1;INT,STD ::分配器<int>>>'

我包括接口文件std_vector.i和stl.i,还有一些似乎是必要的。当我将整数列表传递给该功能时,我会收到上述错误。

任何帮助都将不胜感激。

它可能会有所帮助:

/* File : example.i */
%module example
%{
#include "example.h"
%}
%include "std_vector.i"
namespace std {
    %template(IntVector)    vector<int>;
}
%include "example.h"
/*example.h*/
void my_func(std::vector<int> v) 
{
    for (int i=0; i<v.size(; i++))
        std::cout<<v[i]<<"n";
}
/*in runme.py*/
import example
# call with a python list:
print example.my_func([1, 2, 3, 4])
#call with a python tuple:
print example.my_func((1, 2, 3, 4))
# ... or a wrapped std::vector<int>
v = example.IntVector(4)
for i in range(len(v)):
    v[i] = i + 1
print example.my_func(v)