如何使用C++实现一个计时器

默认分类 · 2023-11-21
#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方法获取经过的时间。


又拍云支持