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

简介:
C++中经常使用map来存储键值对,本章介绍python如何传递或返回c++ map键值对
c++源码:src.cpp
#include <iostream>
#include <string>
#include <map>
using namespace std;

typedef map<string,int> simap;

simap A()
{
simap m;
m["aaa"] = 1;
m["bbb"] = 2;
m["ccc"] = 3;
m["ddd"] = 4;
m["eee"] = 5;
m["fff"] = 6;

return m;
}

为python做转换代码,src4py.cpp
#include <boost/python.hpp> 
#include <boost/python/suite/indexing/map_indexing_suite.hpp>
#include "src.cpp"
using namespace boost::python;
BOOST_PYTHON_MODULE(test)
{

class_<simap>("pySImap")
.def( map_indexing_suite<simap>() )
;

def("a",A);
}

python调用端代码: test.py
import test
mapcontainer = test.pySImap()
mapcontainer = test.a()

for i in mapcontainer:
print i

dict = {}
for i in mapcontainer:
key = i.key()
dict[key] = i.data()
print dict


本文转自elbertchen 51CTO博客,原文链接:http://blog.51cto.com/linkyou/751828,如需转载请自行联系原作者
相关文章
|
12天前
|
人工智能 机器人 C++
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
|
29天前
|
编译器 测试技术 C++
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
159 0
|
17天前
|
C++ Python
【C++/Python】C++调用python文件
【C++/Python】C++调用python文件
|
22天前
|
Python
Python内置函数map、split、join讲解
Python内置函数map、split、join讲解
29 0
|
25天前
|
存储 算法 C语言
【C++入门到精通】C++入门 —— map & multimap (STL)
之前我们学习了C++的基础和一些概念,现在将探讨重要的STL组件——map与multimap。map是关联容器,提供有序键值对存储,基于红黑树,支持高效查找、插入和删除。每个键唯一对应一个值。multimap则允许键的重复。两者都提供迭代器支持,但map的键是唯一的,而multimap允许键重复,插入和查找效率不同。更多详情,请查阅官方文档。祝学习愉快!
12 0
|
25天前
|
存储 算法 C++
【C++ map结构 】std::map 和 std::unordered_map 在使用上的差异
【C++ map结构 】std::map 和 std::unordered_map 在使用上的差异
20 0
|
26天前
|
算法 编译器 C++
【C++ 关键字的混合使用 】C++深度探索:auto、static、constexpr的交互影响与应用
【C++ 关键字的混合使用 】C++深度探索:auto、static、constexpr的交互影响与应用
31 0
|
29天前
|
存储 算法 C++
【C++ 包装器类 map】C++ 标准库(std)中的map结构 哈希表(unordered_map)和黑红树(map)教程
【C++ 包装器类 map】C++ 标准库(std)中的map结构 哈希表(unordered_map)和黑红树(map)教程
78 1
|
1月前
|
存储 JSON NoSQL
Redis与Python的完美结合:实现高效数据交互和应用场景全解析
Redis与Python的完美结合:实现高效数据交互和应用场景全解析
113 0
|
1月前
|
存储 JSON C++
【C++】容器篇(五)—— map和set的基本介绍
【C++】容器篇(五)—— map和set的基本介绍