系统:win7
ide:vs2012
今天闲来无事,想测试一下vector不同遍历方式性能有多少差别,先上代码
#include <iostream>
#include <vector>
#include <windows.h>
using namespace std;
int main()
{
// 创建vector,插入一百万条数据
std::vector<int> vecTest;
const int VEC_SIZE = 1000000;
vecTest.reserve(VEC_SIZE);
for (int i = 0; i < VEC_SIZE; i++)
{
vecTest.push_back(i);
}
int tempNum = 0;
const int TEST_TIMES = 100;
LARGE_INTEGER freq;
QueryPerformanceFrequency(&freq);
LARGE_INTEGER time0, time1, time2, time3;
QueryPerformanceCounter(&time0);
// 遍历方式一
for (std::vector<int>::iterator it = vecTest.begin(); it != vecTest.end(); ++it)
{
tempNum = *it;
}
QueryPerformanceCounter(&time1);
// 遍历方式二
for (auto it : vecTest)
{
tempNum = it;
}
QueryPerformanceCounter(&time2);
// 遍历方式三
size_t maxCount = v