C++ 库 chrono
C++11 引入的 chrono 库,用于处理时间、计时和时间点,主要提供三类核心概念。
duration(持续时间)
1 | std::chrono::duration<Rep, Period> |
Rep 表示持续时间的类型,Period 表示时间单位。
常用别名:
std::chrono::seconds秒std::chrono::milliseconds毫秒std::chrono::microseconds微秒std::chrono::nanoseconds纳秒std::chrono::minutes分钟std::chrono::hours小时
time_point(时间点)
表示某个具体时刻。
1 | std::chrono::time_point<Clock, Duration> |
Clock 表示时钟类型,Duration 表示时间间隔类型。
clock(时钟)
提供获取当前时间的函数。
steady_clock单调递增,不受系统时间调整影响,适合计时。system_clock系统时间,可转换为日历时间。high_resolution_clock高精度计时。
使用
获取当前时间点:
1 | auto start = std::chrono::steady_clock::now(); |
计时:
1 | auto start = std::chrono::steady_clock::now(); |
返回 epoch 到当前时间点的偏移量,并把这个时间间隔以整数形式表示:
1 | chrono::steady_clock::now().time_since_epoch().count(); // 常用于初始化随机数种子 |
不同 Clock 类型的 spoch 不一样:
steady_clock的spoch通常为 系统启动时间。system_clock的spoch通常为 1970-01-01 00:00:00 UTC 。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 星光light!
评论
