python如何调用c++提升运算

其他教程   发布日期:2023年06月23日   浏览次数:490

这篇“python如何调用c++提升运算”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python如何调用c++提升运算”文章吧。

代码如下:

  1. #include "iostream"
  2. using namespace std;
  3. class Calc {
  4. public:
  5. int add(int a, int b);
  6. void sf();
  7. };
  8. int Calc::add(int a, int b) {
  9. cout << "收到参数为a,b: " << a << " " << b << endl;
  10. return a + b;
  11. }
  12. void Calc::sf() {
  13. for (int i = 0; i < 1001; i++) {
  14. for (int j = 0; j < 1001; j++) {
  15. for (int k = 0; k < 1001; k++) {
  16. if (i * i + j * j == k * k && i + j + k == 1000) {
  17. cout << i << "," << j << "," << k << endl;
  18. }
  19. }
  20. }
  21. }
  22. }
  23. extern "C" {
  24. Calc calc;
  25. int add(int a, int b) {
  26. return calc.add(a, b);
  27. }
  28. void sf() {
  29. calc.sf();
  30. }
  31. };

g++ -finput-charset=UTF-8 -fexec-charset=GBK -o add.so -shared -fPIC add.cpp

  1. import ctypes
  2. import time
  3. dll = ctypes.cdll.LoadLibrary
  4. calc_lib = dll('./add.so')
  5. r = calc_lib.add(3, 5)
  6. print(r)
  7. t1 = time.time()
  8. # 运算300多秒 5分钟
  9. # for i in range(1001):
  10. # for j in range(1001):
  11. # for k in range(1001):
  12. # if i * i + j * j == k * k and i + j + k == 1000:
  13. # print(i, j, k)
  14. # 运行1.6s即可完成
  15. calc_lib.sf()
  16. t2 = time.time()
  17. print(t2-t1)

以上就是python如何调用c++提升运算的详细内容,更多关于python如何调用c++提升运算的资料请关注九品源码其它相关文章!