C++11标准库chrono

chrono是C++11新加入的方便时间日期操作的标准库,它既是相应的头文件名称,也是std命名空间下的一个子命名空间,所有时间日期相关定义均在std::chrono命名空间下。通过这个新的标准库,可以非常方便进行时间日期相关操作。
chrono库主要包含了三种类型:duration, time_point 和 clock。

Duration(时间间隔)

chrono库中用一个duration模板类,用来表示一段时间间隔,可以表示几秒钟、几分钟或者几个小时的时间间隔。

原型

template<typename _Rep, typename _Period = ratio<1>>
struct duration
{
typedef _Rep   rep;
...
private:
    rep  __r;  //内部维护的计数个数成员
...
};

第一个模版参数是数值类型,表示时钟个数;第二个为std::ratio,用来表示每个时钟的周期(单位为秒)。
ratio的原型是

template<intmax_t _Num, intmax_t _Den = 1>
struct ratio;

这是一个非类型模版参数的模版类,intmax_t是定义在cstdint头文件中的内置类型。第一个参数代表分子,第二个代表分母,两者表示一个通用的比率类型。它们必须在编译期间确定为常量值。分母默认为1,因此ratio<60>代表60,ratio<1, 1000>代表0.001。为了方便使用,在ratio头文件中定义了常用比率的别名:

  typedef ratio<1,       1000000000000000000> atto;
  typedef ratio<1,          1000000000000000> femto;
  typedef ratio<1,             1000000000000> pico;
  typedef ratio<1,                1000000000> nano;
  typedef ratio<1,                   1000000> micro;
  typedef ratio<1,                      1000> milli;
  typedef ratio<1,                       100> centi;
  typedef ratio<1,                        10> deci;
  typedef ratio<                       10, 1> deca;
  typedef ratio<                      100, 1> hecto;
  typedef ratio<                     1000, 1> kilo;
  typedef ratio<                  1000000, 1> mega;
  typedef ratio<               1000000000, 1> giga;
  typedef ratio<   
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值