目录
timer.h
#pragma once
#include <iostream>
#include <cstdlib>
#include <time.h>
class timer
{
public:
timer();
void restart(); //重新设定开始时间
double elapsed() const; //流逝的时间 毫妙
void sleep(double ms); //等待多少毫秒
double elapsed_min() const; //时间最大值
double elapsed_max() const; //时间最小值
protected:
private:
clock_t start_time;
};
timer.cpp
#include "timer.h"
timer::timer()
{
start_time = clock(); //开始时间
}
void timer::restart()
{
start_time = clock();//实际上是cpu运行的次数
}
double timer::elapsed() const //毫秒
{
return double(clock() - start_time) / CLOCKS_PER_SEC * 1000; //一秒钟内CPU运行的次数
}
void timer::sleep(double ms)
{
while (true)
{
if (elapsed() == ms/1000.)
{
break;
}
}
}
double timer::elapsed_min() const
{
return double(1) / double(CLOCKS_PER_SEC); //时间精度
}
double timer::elapsed_max() const
{
//clock_t的最大值
return double((std::numeric_limits<clock_t>::max())) - double(start_time) / double(CLOCKS_PER_SEC);
}
main.cpp
#include "timer.h"
/*
CLOCKS_PER_SEC是标准c的time.h头函数中宏定义的一个常数,表示一秒钟内CPU运行的时钟周期数,
用于将clock()函数的结果转化为以秒为单位的量,但是这个量的具体值是与操作系统相关的。
*/
int main()
{
timer t;
t.sleep(1000); //等待1000毫妙
std::cout << t.elapsed() << std::endl; //流逝的时间
t.restart(); //重新定义开始时间
std::cout << t.elapsed() << std::endl; //流逝的时间
//存C++可以不写返回值
system("pause");
}
//结果
//1
//0
//请按任意键继续. . .