哪个是更快的c ++向量或python列表

创建了一个包含 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

创建了一个包含 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 很慢?


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


皈依舞
浏览 116回答 1
1回答

慕工程0101907

您的 C++ 时间计算不正确。既然你想要微发送,你应该直接询问它们,而不是你现在的计算。这是更简单和正确的:auto&nbsp;duration&nbsp;=&nbsp;duration_cast<microseconds>(stopTime&nbsp;-&nbsp;startTime); cout&nbsp;<<&nbsp;"time:&nbsp;"&nbsp;<<&nbsp;duration.count()&nbsp;<<&nbsp;"&nbsp;microsec\n";编译器资源管理器演示注意:确保您正在测试优化的构建以获得有用的结果。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python