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

c++源码:src.cpp

#include

typedef std::vector dvec;

dvec A()
{
    dvec vec;
    vec.push_back(1.0);
    return vec;
}

 

python转换代码:src4py.cpp

 

#include
#include
#include "src.cpp"

using namespace boost::python;
BOOST_PYTHON_MODULE(test)
{
    class_("pyvector")
        .def( vector_indexing_suite () )
        ;
    class_ >("pyvector_vec")
        .def( vector_indexing_suite< std::vector > () )
        ;

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

你可能感兴趣的:(vector,python,c++,class,module,c)