python 调用C++函数返回vector
时间: 2023-07-29 12:13:52 浏览: 370
要在 Python 中调用 C++ 函数并返回 vector,可以使用 C++ 的 STL 库和 Pybind11 库。下面是一个简单的示例:
1. 首先,我们需要在 C++ 代码中定义一个函数,它将返回一个 vector:
```c++
#include <vector>
std::vector<int> my_function(int arg1, double arg2) {
// 在这里实现函数逻辑
std::vector<int> results = {1, 2, 3, 4, 5};
return results;
}
```
2. 在使用 Pybind11 库时,我们需要在 C++ 代码中将函数导出为 Python 模块:
```c++
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
namespace py = pybind11;
PYBIND11_MODULE(my_module, m) {
m.def("my_function", &my_function, "A function that returns a vector");
}
```
3. 最后,我们可以在 Python 中导入这个模块并调用这个函数:
```python
import my_module
results = my_module.my_function(1, 2.0)
print(results)
```
输出应该是 `[1, 2, 3, 4, 5]`。
注意:在使用 Pybind11 这个库时,需要将其安装在你的环境中,可以通过 pip install pybind11 命令来安装。
阅读全文