小编use*_*643的帖子

为什么列表迭代比向量迭代C++更快

我有以下代码:

main() {
  vector<int> v (1000,0);
  list<int> l (1000,0);

  clock_t begin,end;

  cout <<"Vector size: "<<v.size()<<endl;
  cout <<"List size: "<<l.size()<<endl;

  begin=clock();
  for (int i=0;i<1000000;i++)
    for (vector <int>::iterator it=v.begin();it!=v.end();it++);
  end=clock();

  cout <<v[0]<<endl;
  cout << "Vector iteration: " << (double)(end-begin)/CLOCKS_PER_SEC <<endl;


  begin=clock();
  for (int i=0;i<1000000;i++)
    for (list <int>::iterator it=l.begin();it!=l.end();it++);
  end=clock();

  list <int>::iterator it=l.begin();
  cout << *it <<endl;
  cout << "List iteration: " << (double)(end-begin)/CLOCKS_PER_SEC <<endl;
}
Run Code Online (Sandbox Code Playgroud)

总是,我得到的结果是向量迭代是(大约)18.3秒,列表迭代是(大约)11.7秒.这怎么可能?我的测量有问题吗?

谢谢你的帮助!

c++ performance stl

-1
推荐指数
1
解决办法
729
查看次数

标签 统计

c++ ×1

performance ×1

stl ×1