c++矢量推回一亿个元素,需要20秒。
c++列表推回一亿个元素,将崩溃。
python list追加一亿个元素,耗时9秒。你知道吗
python代码示例。你知道吗
import time
if __name__ == '__main__':
start = time.time()
s = []
for i in xrange(100000000): # one hundred million
s.append(1)
stop = time.time()
print(stop - start) # second
c++代码示例。你知道吗
#include <iostream>
#include <algorithm>
#include <vector>
#include <chrono>
using std::vector;
using std::find;
using std::cout;
using std::endl;
using std::chrono::steady_clock;
using std::chrono::duration_cast;
using std::chrono::nanoseconds;
int main(void) {
auto start = steady_clock::now();
auto max_size = 100000000; // one hundred million
vector<int> b(max_size);
for (int i = 0; i < max_size; ++i) {
b.push_back(1);
}
auto end = steady_clock::now();
auto nano = duration_cast<nanoseconds>(end - start);
cout << "elapsed(nano seconds): " << nano.count();
<< "; vector.size: " << b.size() << endl;
return 0;
}
我不知道为什么c++vector/list比python list慢。你知道吗
谢谢大家,我把vector<int> b(max_size)
改成vector<int> b; b.reserve(max_size);
并启用优化到/O2,看起来速度非常快,只需要100毫秒
目前没有回答
相关问题 更多 >
编程相关推荐