我有以下代码,我想创建一个封装计时器的类,但我遇到的问题是在声明类后使用计时器。我发布了另一个代码块来展示我想如何使用计时器的示例。
double diffclock(clock_t clock1,clock_t clock2)
{
double diffticks=clock1-clock2;
double diffms=(diffticks*1000)/CLOCKS_PER_SEC;
return diffms;
}
void some_function()
{
clock_t begin = clock();
//do something
clock_t end=clock();
cout << "Time elapsed: " << double(diffclock(end,begin)) << " ms"<< endl;
}
这是头文件
#ifndef SPECIALCLOCK_H
#define SPECIALCLOCK_H
#include <ctime>
class specialclock
{
private:
public:
specialclock(){}
~specialclock(){}
double diffclock(clock_t clock1,clock_t clock2);
};
double specialclock::diffclock(clock_t clock1,clock_t clock2)
{
double diffticks=clock1-clock2;
double diffms=(diffticks*1000)/CLOCKS_PER_SEC;
return diffms;
}
#endif
这是主文件
#include "specialclock.h"
int main()
{
specialclock timer;
//how would I use the timer here?
return 0;
}
最佳答案
在您的特殊时钟类的构造函数中,将时钟的当前值存储到一个成员变量中。
在你的特殊时钟类的析构函数中,再次查询时钟的当前值,从当前值中减去你的成员变量的值,并打印出结果。
然后你可以在任何函数/方法的顶部声明一个特殊的时钟项,它会自动打印出函数/方法运行了多长时间。
关于c++ - 课外计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6590778/