C++ 实现计时器

目录

timer.h

timer.cpp

main.cpp


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
//请按任意键继续. . .

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章