`
linkyou66
  • 浏览: 228564 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

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

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

相关推荐

Global site tag (gtag.js) - Google Analytics