class Timer {
public:
// 使用 std::chrono::steady_clock 来避免时钟回拨问题
using Clock = std::chrono::steady_clock;
// 构造函数,初始化 curr 为当前时间
Timer() : curr(Clock::now()) {}
// 重置计时器为当前时间
void reset() {
curr = Clock::now();
}
// 返回自构造或重置以来经过的秒数
double elapsed() const {
// 使用 auto 来自动推导持续时间的类型
auto duration = std::chrono::duration_cast<std::chrono::duration<double>>(Clock::now() - curr);
return duration.count();
}
private:
std::chrono::time_point<Clock> curr;
};
}
简单使用
int main()
{
Timer x;
int a = 0;
for (int i = 1; i <= 100000; i++)
{
a++;
}
cout << x.elapsed() << "s\n";
}