2012-07-11 54 views
0

我有一个C++文件,我想使用SWIG变成一个Python模块。该文件由一个功能vector<string> load(string input) {组成。当然,我正在使用C++头文件<vector><string>。理想情况下,我希望此函数在从Python中调用时返回一个Python列表。不幸的是,我对SWIG的经验相对较少,而且我想知道最简单的方法是什么。我在接口文件中使用了%include“std_string.i”和%include“std_vector.i”,但到目前为止,我只想到如何使用std_vector来处理vector<int>vector<double>等,但不是vector<string>。必须有办法做到这一点。我只是想知道如果有人能向我解释如何。我在使用Python 2.7.1的Mac OSX 10.7.4上使用SWIG 2.0.7。如何为使用矢量<string>的函数编写SWIG接口文件?

+1

这是否回答你的问题? http://stackoverflow.com/questions/8469138/swig-wrapping-c-for-python-translating-a-list-of-strings-to-an-stl-vector-of?rq=1 – 2012-07-11 05:22:19

+0

或者这一个: http://stackoverflow.com/a/11219110/235698 – 2012-07-11 14:13:08

+0

谢谢,那些确实清除了事情。 – djpetti 2012-07-13 18:38:01

回答

2

这是我做的:

%include "stl.i" 
%template(_string_list) std::vector<std::string>;