使用 boost-timer 记录间隔毫秒数

最近写的东西需要记录一些相对时间,要求精度为毫秒级。
由于整个项目用到了boost的库所以干脆就用了boost封装过的time库。
使用方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

#include <boost/timer.hpp>
#include <iostream>
using namespace std;
using namespace boost;
int main()
{
timer t;
//timer的最大计时时间(小时)
cout << "Max timeSpan:" << t.elapsed_max() / 3600 << "h" << endl;
//timer的最小计时单位
cout << "min timespan:" << t.elapsed_min() << "s" << endl;
//从timer声明到当前位置的时间(毫秒)
cout << "now time elapsed:" << t.elapsed() << "s" << endl;
getchar();
return 0;
}

考虑到输出的结果仍然是用秒作为单位的浮点数,使用起来不够方便。
这里就写了一个继承类把间隔统一为毫秒作为单位方便使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#pragma once
#include <boost/timer.hpp>
//using boost::timer;

class timer_ms: public boost::timer
{
public:
inline unsigned long long elapsed_ms()
{
return (elapsed() * 1000);
}
inline unsigned long long elapsed_sec()
{
return (unsigned long long)elapsed();
}
};

这样子就可以愉快的使用timer_ms类记录时间了。