今天测试了一个程序: **
这是第一段代码:
**
#include <iostream>
#include <vector>
#include <Windows.h>
using namespace std;
int main()
{
vector<int> arrInt;
for (int i = 0; i < 10000; i++)
{
arrInt.push_back(9999);
}
LARGE_INTEGER bigInt;
LONGLONG t1, t2;
QueryPerformanceFrequency(&bigInt);
double frequence = (double)bigInt.QuadPart;
QueryPerformanceCounter(&bigInt);
LONGLONG start_time = bigInt.QuadPart;
int a = arrInt.size();
for (int i = 0; i < a; i++)
{
}
QueryPerformanceCounter(&bigInt);
LONGLONG end_time = bigInt.QuadPart;
double div_end_start = (double)end_time - start_time;
double use_time = div_end_start / frequence;
std::cout << "Use Time:" << use_time;
}
}
这是代码的运行时间(单位:秒):
实际上运行在微秒级别!0.17微妙 ** 后面所有的代码只替换for循环对应的部分
这是第二段代码:
**
for (int i = 0; i < arrInt.size(); i++)
{
}
这是代码的运行时间(单位:秒):
这个毫秒级别!0.1027毫秒
**
这是第三段代码:
**
for (std::vector<int>::iterator it = arrInt.begin(); it != arrInt.end(); it++)
{
}
这是代码的运行时间(单位:秒):
这个也是毫秒级别!7.0745毫秒
**
这是第四段代码:
**
for (auto it = arrInt.begin(); it != arrInt.end(); it++)
{
}
这是代码的运行时间(单位:秒):
这里多说一句:我觉得这种auto 特别类似于python中智能判断后面赋值的类型。
这个是毫秒级别!
这是第五段代码:
**
for (int i:arrInt)
{
}
这是代码的运行时间(单位:秒):
这个是微秒级别!
|