ACM题目大都有规定运行时间的,
那么我们如何测得程序运行时间呢?
这就得益于C++函数库time.h
下面是一段示范代码:
#include<iostream>
#include<time.h>
using namespace std;
int main()
{
long beginTime =clock();//获得开始时间,单位为毫秒
for(int i=0;i<10000;i++){cout<<i<<endl;}//输出10000行数字
long endTime=clock();//获得结束时间
cout<<"beginTime:"<<beginTime<<endl
<<"endTime:"<<endTime<<endl
<<"endTime-beginTime:"<<endTime-beginTime<<endl;
return 0;
}
//这是LARGE_INTEGER结构的定义,不需要定义
typedef union _LARCE_INTEGER
{
struct
{
DWORD LowPart;// 4字节整型数
LONG HighPart;// 4字节整型数
};
LONGLONG QuadPart;//8字节整型数
}LARGE_INTEGER;
//实际程序
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;//记录程序开始和结束的时间
double dfMinus, dfFreq, dfTim;//
QueryPerformanceFrequency(&litmp);//获得计数器的时钟频率
dfFreq=(double)litmp.QuadPart;
QueryPerformanceCounter(&litmp);
//获得初始值
QPart1=litmp.QuadPart;
/*
要测试的程序
*/
QueryPerformanceCounter(&litmp);
//获得中止值
QPart2=litmp.QuadPart;
dfMinus=(double)(QPart2-QPart1);
//获得对应的时间值
dfTim=dfMinus/dfFreq;
cout<<dfTim<<endl;//结果以秒为单位
2万+

被折叠的 条评论
为什么被折叠?



