c++ python交互之boost.python 简集之 vector处理

    技术2022-05-20  49

    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 "----------------------------------------------"


    最新回复(0)