chrono学习笔记

chrono 是一个头文件名,同时也是一个子命名空间:所有在这个头文件中的内容(除了 common_type 模板特化以外)都不是直接定义在std命名空间中(像大部分标准库中内容一样),而是被定义在 std::chrono 命名空间中.
这个头文件中的元素处理有关时间的内容,这些内容主要包括三个概念:

  • 时期
    • 它们是时间段的量度,比如:一分钟,两小时,或是十微秒.
    • 在这个库中,它们表现为duration模板类的对象,这与一个数量和一个计量单位挂钩(例如,十微秒的数量是10,而单位是微秒).
  • 时间点
    • 对一个特定时间点的引用,比如,一个人的生日,今天的黄昏,或下一班火车到达的时刻.
    • 在这个库中,模板类time_point的对象使用关系到一个epoch(一个在所有使用同一时钟的time_point对象中共享的时间点)的duration对象提供这一关系.
  • 时钟

duration

template <typename Rep, typename Period = ratio<1> >
class duration;

一个duration对象提供由一个计数器(count)和一个时间单位(period)组成的时间段.
在实现中,此对象使用成员类型rep(它第一个模板参数Rep的别名)存储这一计数器(count),它可以通过成员函数count来读取.
这一计数器通过时间单位(period)来表示.单位时间的长度在编译时通过duration的第二个模板参数(Period)被集成到这一类型中,这里Period是一个分数(ratio),它以分数形式表示了每一个单位时间内流逝的秒数.

模板参数

  • Rep
    • 一个算术类型,或是一个模拟算术类型的类,它被用作count的类型.
  • Period
    • 一个分数(以ratio模板的实例化表示),它给出了每个时间单位(period)的长度.

模板实例

下列被定义(typedef)的duration模板实例也在这一命名空间(std::chrono)中:

类型表示时间单位(Period)
hours至少23位的有符号整数ratio<3600,1>
minutes至少29位的有符号整数ratio<60,1>
seconds至少35位的有符号整数ratio<1,1>
milliseconds至少45位的有符号整数ratio<1,1000>
microseconds至少55位的有符号整数ratio<1,1000000>(1,000,000)
nanoseconds至少64位的有符号整数ratio<1,1000000000>(1,000,000,000)

成员类型

下列别名是duration的成员类型.它们被广泛用作成员函数参数和返回值的类型:

成员类型定义说明
rep第一个模板参数(Rep)用作表示内部计数器对象的类型
period第二个模板参数(Period)一个以秒为单位,用于表示单位时间(period)长度的分数(ratio)

函数

成员函数:

(构造函数)构造一个duration对象(公有,成员)
(析构函数)销毁这一对象(公有,成员)
count获取计数器(公有,成员)

静态成员函数:

zero将其值清零(公有,静态,成员)
min最小值(公有,静态,成员)
max最大值(公有,静态,成员)

非成员函数:

运算符用于duration对象的运算符(函数模板)
(未完待续)

文中如有翻译错误,欢迎批评指正,谢谢.

原文链接:http://www.cplusplus.com/reference/chrono.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值