c++源码:src.cpp
#include <vector> typedef std::vector<double> dvec; dvec A() { dvec vec; vec.push_back(1.0); return vec; }
python转换代码:src4py.cpp
#include <boost/python.hpp> #include <boost/python/suite/indexing/vector_indexing_suite.hpp> #include "src.cpp" using namespace boost::python; BOOST_PYTHON_MODULE(test) { class_<dvec>("pyvector") .def( vector_indexing_suite<dvec > () ) ; class_<std::vector<dvec> >("pyvector_vec") .def( vector_indexing_suite< std::vector<dvec> > () ) ; def("a",A); } python调用代码 :test.py
import test #这里调用C++中的A()函数,会返回一个vector对象 a = test.a() b = test.pyvector() b = a for i in b: print i b.append(2.0) print "#----------------------------------------------" for i in b: print i print "##----------------------------------------------" c = test.pyvector_vec() c.append(a) c.append(b) for i in c: print i for j in i: print j print "----------------------------------------------"