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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值