C++ 中数值、时间和复杂数据处理之时间相关操作详解(上)
在程序开发中,我们经常需要处理数值、时间和复杂数据。本文将重点介绍 C++ 中与时间相关的操作,包括时间间隔(duration)、时钟(clock)和时间点(time point)等内容。
1. ratio 模板类型的作用
ratio 模板类型的主要目的是在编译时方便地定义有理数。它并非用于在编译时进行大量计算,而是通过模板参数值来定义有理数,这样在编译时执行必要的算术运算有助于避免溢出问题。
2. 时间相关概念及 chrono 头文件
在程序中,我们常常需要处理时间间隔,比如游戏程序中可能需要测量执行性能。时间测量不仅涉及软件,底层硬件提供了时钟和间隔计时功能,而 STL 通过操作系统为我们提供了与硬件的接口。
chrono 头文件定义了与时间间隔、时间点和时钟相关的类和类模板。所有这些名称都定义在 std::chrono 命名空间中。时间间隔、时间点和时钟之间的关系如下:
- 持续时间(Duration) :是一个由时间刻度(tick)数量定义的时间间隔,你可以指定一个刻度代表的秒数。默认情况下,一个刻度代表一秒,但你也可以将其定义为秒的倍数或分数。例如,若将一个刻度定义为 3600 秒,那么持续时间为 10 就表示 10 小时;若定义为十分之一秒,持续时间为 10 则表示 1 秒。
- 时钟(Clock) :记录从一个给定的固定时刻(称为纪元,epoch)开始的时间流逝。有三种封装硬件时钟的类类型,后续会详细介绍。时间以刻度为单位进行测量,因此一个
超级会员免费看
订阅专栏 解锁全文
1544

被折叠的 条评论
为什么被折叠?



