Cython 中如何调用 c++ 的模板库?
如题,最近有一个大量用到 python 中字典和列表寻址特性的科学计算函数,初步估算了一下循环次数在十亿级,纯 python 跑的非常慢,换到 pypy 以后加速快了三倍左右,但还是要等一分钟才能出结果。
于是想到能不能用 cython 加速,我以前 cython 都是了解皮毛,只跑过 helloworld 。 今天初步研究了一下感觉可行,按我的想法,因为要大量使用 python 列表,其加速方式大概就是要映射到 cpp 的 vector 了吧
在引入 stl 时遇到了无法引入的问题,有没有带佬指点一下哪错了
# 按我的理解安装 cython 时应该已经自带转换好的 stl 文件了吧 # 以下这段 C 库的引入是可以正常编译的 import cython from libc.stdlib cimport atoi from libc.string cimport memset # 但是这里引入 CPP 的话却会报错 from libcpp.vector cimport vector
另外求问一下关于 python 字典的映射方式,在 cython 中应该怎么处理。比如现在有一个长度不确定的字典 name_dict,估测长度在一百万左右, 我需要大量使用诸如 name_dict['tom'] , name_dict['sam'] 这类字符串寻址来搜寻具体对象,对象内容不复杂,可以映射为结构体,但是这个字典该怎么搞?
谢谢大家