std::ratio
表示一个单位时间。
template <
std::intmax_t Num,
std::intmax_t Denom = 1
> class ratio;
Num 是时间的分子,Denom 是时间的分母。
std::milli = std::ratio<1, 1000>
std::centi = std::<1, 100>
std::deci = std::<1, 10>
std::chrono::duration
表示时间间隔。
template<
class Rep,
class Period = std::ratio<1>
> class duration;
成员函数 count() 返回 Rep 类型的 Period 数量
如果要返回 duration 表示的秒数,可以用 dra.count() * dra::period::num / dra::period::den
,注意类型转换。
成员函数 duration_cast < T1 > T2 表示将 T2 类型的 duration 转化为 T1 类型。
std::chrono::milliseconds = std::chrono::duration<int,std::milli >
std::chrono::seconds = std::chrono::duration<int>
std::chrono::minutes = std::chrono::duration<int,std::ratio<60> >
std::chrono::hours = std::chrono::duration<int,std::ratio<3600> >
std::chrono::time_point
表示时间点。
template <
class Clock,
class Duration = typename Clock::duration
> class time_point
time_since_epoch() 返回 duration 类型的从纪元时间开始的时间长度。
time_point_cast
Clock 一般使用 steady_clock,不会受系统时间的调节影响。