我从Python & lt;-& gt;C++绑定开始这个页面,目的是链接高级数据类型(多维STL向量和Python列表):
尝试了基于两者的解决方案
ctypes
boost.python
(而且不是软件工程师)我发现当需要高级数据类型绑定时它们很复杂,而我发现
SWIG
因此,这个例子使用SWIG,并且已经在Linux中进行了测试(但是SWIG是可用的,并且在Windows中也被广泛使用)。
目的是使一个C++函数可用于Python,该函数采用一个2D STL向量形式的矩阵,并返回每行的平均值(作为1D STL向量)。
#include
#include "code.h"
using namespace std;
vector average (vector< vector > i_matrix) {
// Compute average of each row..
vector averages;
for (int r = 0; r < i_matrix.size(); r++){
double rsum = 0.0;
double ncols= i_matrix[r].size();
for (int c = 0; c< i_matrix[r].size(); c++){
rsum += i_matrix[r][c];
}
averages.push_back(rsum/ncols);
}
return averages;
}
等效标题(“code.h