#include <vector>
#include <iostream>
#include <time.h>
using namespace std
;
int main()
{
vector
<int> v(100000000);
time_t begin
, end
;
begin
= clock();
for (int i
= 0; i
< v
.size(); ++i
)
{
v
[i
] = 10;
}
end
= clock();
cout
<< end
- begin
<< endl
;
begin
= clock();
for(auto it
= v
.begin(); it
!= v
.end(); ++it
)
{
*it
= 10;
}
end
= clock();
cout
<< end
- begin
<< endl
;
begin
= clock();
for(auto &i
: v
)
{
i
= 10;
}
end
= clock();
cout
<< end
- begin
<< endl
;
return 0;
}
执行结果: 下标:2183 迭代器:5117 :for循环 :3621
显然在debug模式下,下标访问的效率最高。 在release模式下,经过编译器的优化,效率可能相差无几。