pybind11封装的函数实现内置容器作为参数和返回值,简单易懂。那么在使用pybind11封装C++实现的函数时如何保留这个特性呢?本文介绍pybind11如何实现list和dict作为参数和返回值。一、C++STL与python内置数据类型的对应关系C++STLPythonstd::vectorliststd::arrayliststd::mapdictstd::setset二、需要注意的问题为了使C++函数能够返回向量对象,向量容器必须是returned一般放在函数参数中,下面两种方式在某些情况下可以达到同样的效果,但是推荐第二种方式。因为如果使用前一种方法,而类的对象存放在vector中,函数返回时会调用相关类的析构函数。所以如果vector是局部变量,返回vector的引用是非常危险的,因为vector已经被析构了。返回地图对象是一样的。矢量fun1(intnum){矢量值;for(intj=0;jfun1(intnum,vector&values){for(intj=0;j#include