1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#ifndef STOPWATCH_H
#define STOPWATCH_H
#include <ctime>
#include <sstream>
using namespace std;
class stopwatch {
bool _running = false;
clock_t _start;
clock_t _stop;
public:
double started() const { return _start; }
double stopped() const { return _stop; }
bool running() const { return _running; }
void start() {
_running = true;
_start = clock();
}
void stop() {
_stop = clock();
_running = false;
}
double duration() const { return ( (double(_stop - _start))*1000)/CLOCKS_PER_SEC; }
ostream &operator<<(ostream &os){
os << duration() << " ms";
return os;
}
std::string toString(){
stringstream ss;
ss << this;
return ss.str();
}
};
#endif // STOPWATCH_H
|