Boost
timer库概述
timer 库包含三个组件,分别是:计时器类 timer、 progress_timer 和进度指示类progress_display。
timer类摘要
class timer
{
public:
timer() { _start_time = std::clock();}
void restart() { _start_time = std::clock(); }
double elapsed() const
{
return double(std::clock() - _start_time)/ CLOCK_PER_SEC;
}
double elapsed_min() const
{
return double(1)/double(CLOCK_PER_SEC);
}
double elapsed_max() const
{
return (double ( (std:: numeric_limitd<std::clock_t>::max)()) - double(_start_time)) / double(CLOCK_PER_SEC);
}
private:
std::clock_t_start_time;
};
std::clock
函数,返回自进程启动以来的clock数, 每秒的clock数则由宏CLOCKS_PER_SEC定义。win32精度是毫秒,而Linux下则是微秒restart()
函数则重置_start_time
重新开始计时numeric_limitd
是标准库的数值极限类。timer
没有定义析构函数,这样做是正确且啊安全的,只有一个类型为clock_t的成员变量_start_time
,故没有必要实现析构函数来特意”释放资源”
使用
#include <iostream>
#include <boost/timer.hpp>
using namespace std;
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;// elapsed 过去
return