#include <iostream>
#include <chrono>
#include <thread>
class Timer {
public:
Timer() : start_time(std::chrono::high_resolution_clock::now()) {}
void reset() {
start_time = std::chrono::high_resolution_clock::now();
}
double elapsed() const {
auto now = std::chrono::high_resolution_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::microseconds>(now - start_time);
return duration.count() * 1e-6; // 将微秒转换为秒
}
private:
std::chrono::time_point<std::chrono::high_resolution_clock> start_time;
};
int main() {
Timer timer;
// 执行需要计时的任务
// 这里模拟一个任务,让程序休眠一秒钟
std::this_thread::sleep_for(std::chrono::seconds(1));
double elapsed_time = timer.elapsed();
std::cout << "经过 " << elapsed_time << " 秒\n";
return 0;
}
这个程序定义了一个Timer
类,它使用C++的std::chrono
库来进行高精度计时。在main
函数中,创建一个Timer
对象,执行需要计时的任务,然后调用elapsed
方法获取经过的时间。