哪个是更快的C++向量或Python列表

2024-06-28 15:24:18 发布

您现在位置:Python中文网/ 问答频道 /正文

  1. 创建一个10000个元素的向量,初始化为5,并使用chrono计算时间
        auto startTime = high_resolution_clock::now();
        vector<int> v(10000, 5);
        for(auto& a : v)
                a *= a;
        auto stopTime = high_resolution_clock::now();
        auto duration = duration_cast<nanoseconds>(stopTime - startTime);
        cout<<"time: "<<duration.count()*1000<<" microsec\n";              //98362000 microsec
  1. 创建了一个10000个元素的列表,初始化为5
from datetime import datetime
start = datetime.now()
a = [5]*10000
a = [a ** 2 for a in a]
end = datetime.now()
diff = end - start
print("time: ", diff.microseconds , " microseconds")      //1542 microseconds

从上面看,Python是明显的赢家,但C++的下级(我觉得)为什么它的慢WRT Python?p>

我知道chrono和datetime软件包的时间计算算法可能不同,但向量(c++)和列表(python)的比较基准是什么


Tags: 元素forautodatetime时间向量nowduration
1条回答
网友
1楼 · 发布于 2024-06-28 15:24:18
<>你的C++时间计算不正确。既然你想要微弹簧,你应该直接要求,而不是现在的计算。这是简单而正确的:

auto duration = duration_cast<microseconds>(stopTime - startTime);
cout << "time: " << duration.count() << " microsec\n"; 

Demo on Compiler Explorer

注意:确保您正在测试优化的构建以获得有用的结果

相关问题 更多 >