在c++中我们可以使用timer库来处理时间和日期,可以避免使用c中间的time.h的库函数。
timer是一个很小的库,提供简易的度量时间和进度显示功能,可以用于计时所需要的任务,timer包含两个组件:早期的timer(V1)和新的cpu_timer(V2),前者使用的是c/c++库函数,后者使用基于chrono库使用操作系统提供的API,精度更高,这里只介绍timer组件。
timer(V1)库包含三个小组件,分别是timer,progress_timer和进度指示器progress_display。
下面我们来通过实例代码来了解如何使用timer。
#include<boost/timer.hpp>
using namespace boost;
int main()
{
timer t; //声明一个定时器对象,开始计时
cout<<"max timespan:"<<t.elapsed_max()/3600<<"h"<<endl; //可度量的最大时间,用小时表示
cout<<"min timespan:"<<t.elapsed_min()<<"s"<<endl; //可度量的最小时间,用秒表示
cout<<"now time elapsed:"<<t.elapsed()<<"s"<<endl; //输出流逝的时间
}
这里注意的是,当timer的对象一旦被声明,它的构造函数就启动计时工作。
输出如下:
max timespan: 2.56205e+09h
min timespan: 1e-06s
now time elapsed: 0.000773s
progress_timer的用法:
progress_timer也是一个计时器,它继承timer,会在析构时自动输出时间。
#include<boost/progress.hpp>
using namespace boost;
int main()
{
progress_timer t; //从这里开始计时
//do something ..
}//退出作用域,自动输出时间