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

c++ python交互之boost.python 简集之Vector(map)混合使用

 
阅读更多
<p><strong>C++代码如下:src.cpp</strong>
</p>
<p>#include &lt;iostream&gt;<br>
#include &lt;string&gt;<br>
#include &lt;map&gt;<br>
#include &lt;vector&gt;<br><br>
using namespace std;<br><br>
typedef map&lt;string,int&gt; simap;<br>
typedef vector&lt;simap&gt; mvector;<br><br>
simap A()<br>
{<br>
simap m;<br>
m["aaa"] = 1;<br>
m["bbb"] = 2;<br>
m["ccc"] = 3;<br>
m["ddd"] = 4;<br>
m["eee"] = 5;<br>
m["fff"] = 6;<br><br>
return m;<br>
}<br><br>
mvector B(simap s)<br>
{<br>
mvector m;<br>
m.push_back(s); <br>
return m;<br>
}<br><br>
int C(mvector m)<br>
{<br>
int q = m[0]["aaa"];<br>
return q;<br>
}<br><strong>转换代码如下:</strong>
</p>
<p>#src4py.cpp<strong></strong>
</p>
<p><strong><br></strong>
</p>
<p>#include &lt;boost/python.hpp&gt; <br>
#include &lt;boost/python/suite/indexing/map_indexing_suite.hpp&gt;<br>
#include &lt;boost/python/suite/indexing/vector_indexing_suite.hpp&gt;<br>
#include "src.cpp"<br>
using namespace boost::python;<br>
BOOST_PYTHON_MODULE(test)<br>
{<br><br>
class_&lt;simap&gt;("pySImap")<br>
.def( map_indexing_suite&lt;simap&gt;() )<br>
;<br><br>
class_&lt;mvector&gt;("mvector")<br>
.def( vector_indexing_suite&lt; mvector &gt; () )<br>
;<br>
def("a",A);<br>
def("b",B);<br>
def("c",C);<br>
}</p>
<p></p>
<p><strong><br></strong>
</p>
<p><strong>调用代码如下:</strong>
</p>
<p><strong>#test.py<br></strong>
</p>
<p>import test<br>
mapcontainer = test.pySImap()<br>
mapcontainer = test.a()<br>
d = test.b(mapcontainer)<br>
q = test.c(d)<br>
print d[0]['aaa']<br>
print q<br><strong><br></strong>
</p>
分享到:
评论

相关推荐

    Boost.Python文档

    6. **容器支持**:Boost.Python提供了对标准模板库(STL)容器(如vector、list、map等)的直接支持,使得Python可以像操作Python内置类型一样操作这些C++容器。 7. **性能优化**:虽然Python通常被认为是解释型...

    Boost.Asio C++ Network Programming.pdf

    标题《Boost.Asio C++ Network Programming》和描述表明本文档是一本关于使用Boost.Asio库进行C++网络编程的电子书。网络编程是一项要求严谨的复杂任务,涉及底层的网络通信和协议处理。Boost.Asio提供了一种简便的...

    使用onnxruntime部署LivePortrait人像动画生成(C++和Python)程序.zip

    使用onnxruntime部署LivePortrait人像动画生成(C++和Python)程序.zip使用onnxruntime部署LivePortrait人像动画生成(C++和Python)程序.zip使用onnxruntime部署LivePortrait人像动画生成(C++和Python)程序.zip...

    python专用boost扩展模块/boost_python-1.55.win32-py3.3.rar

    Python Boost扩展模块是将C++的Boost库与Python语言相结合的一种工具,旨在增强Python的性能和功能。Boost库是一个开源的C++库集合,提供了大量的高效、跨平台的实用程序,包括数学算法、图形库、多线程支持、日期...

    python25_d.lib和python25_d.dll

    4. **Boost库的依赖**:标签中提到了"boost",这可能意味着你正在尝试使用Boost库与Python进行交互。Boost.Python库允许C++代码与Python无缝集成,如果Boost库未正确配置或安装,也可能导致此错误。 解决这个问题的...

    c++ 和python混合编程实例.zip

    在C++和Python混合编程中,最常用的技术是使用Python的C API或者Boost.Python库。Python的C API允许开发者直接用C或C++编写扩展模块,这些模块可以被Python解释器调用,从而利用C++的性能。Boost.Python库提供了一种...

    使用C++扩展Python功能的方法.zip

    10. **Python/C++最佳实践**: 遵循一些最佳实践可以确保代码的可维护性和可读性,如清晰地划分Python接口和C++实现,避免在C++中过度使用Python对象,以及利用Python的元编程能力来减少重复代码。 总之,C++扩展...

    基于onnxruntime部署人群计数MPCount(包含C++和Python)程序.zip

    基于onnxruntime部署人群计数MPCount(包含C++和Python)程序.zip基于onnxruntime部署人群计数MPCount(包含C++和Python)程序.zip基于onnxruntime部署人群计数MPCount(包含C++和Python)程序.zip基于onnxruntime...

    Boost.Asio C++ 网络编程 中文版

    - **依赖**:Boost.Asio依赖Boost库,后者是一个广泛使用的C++库集合。 - **编译Boost.Asio**:需要配置编译器以链接Boost库。 - **重要的宏**:例如ASIO_STANDALONE,用于独立编译。 - **同步VS异步**:在讨论网络...

    能使用boost.python的MinGw(GCC)动态链接库

    为了方便大家使用MinGW(GCC)+_boost.python,特意只做了三个dll,可以很方便地将c++代码转为python模块. libboost_python-mgw45-1_49.dll libboost_python-mgw45-d-1_49.dll python27.dll 这三个文件我已放在资源...

    Boost.C++.Application.Development.Cookbook

    - **Boost.Python**:用于 C++ 与 Python 语言之间的交互的库。 4. **Boost 库高级应用**: - **性能优化技术**:讲解如何利用 Boost 库中的某些特性来提升应用程序的性能。 - **错误处理**:讨论在使用 Boost ...

    利用Boost.Python将C++代码导入到Python模块

    借助Boost.Python库可以将C/C++代码方便、快捷地移植到python模块当中,实现对python模块的扩充。首先,将C++下的代码编译为动态库,并将生成的动态库命名为封装模块的名字,如:用BOOST_PYTHON_MODULE(Module_Name)...

    Boost.org Python 模块.zip

    Boost.org Python 模块概要欢迎使用 Boost.Python,这是一个 C++ 库,可实现 C++ 与 Python 编程语言之间的无缝互操作性。该库支持引用和指针全局注册的类型强制转换自动跨模块类型转换高效函数重载C++ 到 Python 的...

    使用ONNXRuntime部署YOLOV7人脸检测关键点检测,含C++和Python两个版本.zip

    使用ONNXRuntime部署YOLOV7人脸检测关键点检测,含C++和Python两个版本.zip 代码完整下载可用,确保可以运行。 使用ONNXRuntime部署YOLOV7人脸检测关键点检测,含C++和Python两个版本.zip 代码完整下载可用,确保...

    python27.dll python27_d.lib 文件

    Python是世界上最受欢迎的编程语言之一,特别是在科学计算、数据分析和人工智能领域。Python 2.7是该语言的一个重要版本,虽然现在已经被Python 3.x系列取代,但许多遗留项目仍依赖于它。在这个主题中,我们将深入...

    python35_d.lib和python35_d.dll

    总之,Python35_d.lib和python35_d.dll对于在Visual Studio中使用Python进行C/C++扩展开发至关重要,它们提供了调试环境所需的支持,帮助开发者在创建、测试和优化Python扩展模块时获得更多的信息和控制。...

    python38_d.lib

    解决fatal error LNK1104: cannot open file 'python38_d.lib'问题 由源码得到,版本python3.8,下载后放入到python目录下的libs文件夹即可

    64位python27_d.dll python27_d.lib

    当你的C/C++程序需要与Python交互,比如调用Python模块或者使用Python的特性时,就需要链接这个库。由于它是调试版本,所以它会提供调试信息,帮助开发者在混合编译的项目中找到潜在的问题。 在64位环境下,使用...

    VCForPython27.msi.zip

    vcforpython则明确指出了这个组件是为了解决Python与Visual C++的交互问题。 压缩包内的文件包括: 1. VCForPython27.msi:这是Visual C++ Redistributable for Python 2.7的安装程序,用户可以通过运行这个msi文件...

    c++与python交互vs2010开发demo

    1. **C++ Python绑定技术**:C++与Python交互通常通过Python的C API或第三方库如Boost.Python、SWIG(Simplified Wrapper and Interface Generator)来实现。在这个demo中,可能使用了这些技术之一,让C++代码能够...

Global site tag (gtag.js) - Google Analytics