Boost库学习----timer

本文介绍了一个简单的 C++ Timer 类实现,通过 std::clock() 函数来记录和计算时间间隔。该类提供了启动、重启及获取经过时间等功能,并且源码简洁易懂。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1.timer是一个很实用的小工具,而且十分简单,源码也十分简洁,主要是使用了标准库中的std::clock()实现的

     例子:

      timer t;

      .........

      ..........

    cout<<"time elapsed"<<t.elapsed()<<"s"<<endl;

   打印出从开始到结束的时间间隔,以秒为单位


timer源码十分简洁

class timer
{
 public:
         timer() { _start_time = std::clock(); } 

  void   restart() { _start_time = std::clock(); } 
  double elapsed() const                  
	{
		return double(std::clock() - _start_time) / CLOCKS_PER_SEC; }

  double elapsed_max() const 

  {
    return (double((std::numeric_limits<std::clock_t>::max)())
       - double(_start_time)) / double(CLOCKS_PER_SEC); 
  }

  double elapsed_min() const         
   { return double(1)/double(CLOCKS_PER_SEC); }

 private:
  std::clock_t _start_time;
};

可以看到类中有个成员变量_start_time ,每次初始化一个该类对象时就把当前时钟的值赋给它以记录开始时间,想计算一段时间后时钟的间隔,只需调用elapsed(), elapsed()函数计算此刻时钟的值与_start_time差并除以CLOCKS_PER_SEC。

其中CLOCKS_PER_SEC是ctime中定义的宏,表示一秒钟内时钟的滴答次数,为1000,也就是一秒钟时钟滴答计数为1000。

elapsed_min()函数返回能记录的最小时间间隔,也就是1毫秒。elapsed_max()返回能记录的最大时间间隔。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值