相信會來看這篇部落格的人,應該都認識vector了,是以我就直接上測試代碼了,我是在vs2015中測試的:
#include<iostream>
#include<vector>
#include<windows.h>
using namespace std;
int main() {
//建立4個vector,使用清單初始化,相當與調用拷貝構造函數
vector<int> v1;
int temp;
int i;
for (i = 0; i < 100000; ++i) {
v1.push_back(i);
}
//測試1
DWORD start,end;
start= GetTickCount();
for (i = 0; i < v1.size(); ++i) {
temp=v1[i];
}
end = GetTickCount();
cout << "使用[]運算符耗時:" << end - start << "ms" << endl;
//測試2
start = GetTickCount();
for (auto k = v1.begin(); k < v1.end(); ++k)
{
temp = *k;
}
end = GetTickCount();
cout << "使用疊代器(++k)耗時:" << end - start << "ms" << endl;
//測試3
start = GetTickCount();
for (auto k = v1.begin(); k < v1.end(); k++)
{
temp = *k;
}
end = GetTickCount();
cout << "使用疊代器,使用k++,而不是++k:" << end - start << "ms" << endl;
//測試4
start = GetTickCount();
i = 0;
for (auto k = v1.begin(); i<v1.size(); ++i,++k)
{
temp = *k;
}
end = GetTickCount();
cout << "使用疊代器,不使用end()方法:" << end - start << "ms" << endl;
system("pause");
return 0;
}
輸出:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CZwIGN1YWM4IjZwUGOiBDNkBjN5gTZjFjMzUmY2IDNi9CX2AzLcdDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL3M3Lc9CX6MHc0RHaiojIsJye.png)