您的位置:首页 > 编程语言 > C语言/C++

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

2011-04-14 18:59 519 查看
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 "----------------------------------------------"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息