C艹时间

发布于 2024-08-14  25 次阅读


C艹时间

引入chrono官方库

high_resolution_clock::now()获取当前时间

std::chrono::duration 类模板接受两个模板参数:

第一个是数值类型,第二个是时间单位。如果不指定时间单位,默认单位是秒。

#include <iostream>
#include <chrono>
#include <thread>

int main() {
    // 获取当前时间点
    auto start = std::chrono::high_resolution_clock::now();

    // 一个睡眠函数
    std::this_thread::sleep_for(std::chrono::seconds(3));

    // 获取操作结束时的时间点
    auto end = std::chrono::high_resolution_clock::now();

    // 计算时间差,单位为秒
    std::chrono::duration<double> elapsed_seconds = end - start;

    // 转换为其他单位,毫秒
    auto elapsed_milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);

    std::cout << "Elapsed time: " << elapsed_seconds.count() << " seconds\n";
    std::cout << "Elapsed time: " << elapsed_milliseconds.count() << " milliseconds\n";

    return 0;
}

解释

  • std::chrono::duration<float> 创建了一个使用浮点数表示秒的持续时间对象。
  • half_seconds.count() 返回持续时间的原始值(2.5秒)。
  • 你可以将一个 duration 对象转换为不同的时间单位,例如从秒转换到毫秒。在上面的例子中,milliseconds 是以毫秒为单位表示的相同时间跨度。
QQ:2219349024
最后更新于 2024-08-14