C++ std::Chrono::Time_point

2024 年 8 月 29 日 | 阅读 3 分钟

在本文中,我们将讨论 C++ 中的 std::chrono::time_point 及其示例。

一个名为 std::chrono::time_point 的类模板包含在 C++ 标准库的 <chrono> 头文件中。它用于处理涉及时间的计算,并表示一个特定的时间点。

模板规范

时钟

此时间点使用此时钟函数进行测量。时钟必须满足特定条件,否则(从 C++20 开始)它可以是 std::chrono::local_t

持续时间

一个 std::chrono::duration 类型,用于计算自时钟纪元开始以来的时间量。它可以省略,并且默认将使用时钟的持续时间类型。

成员类型

时钟

对于与时间点链接的时钟,请键入别名。

duration

它是持续时间类型的类型别名,用于计算纪元的持续时间。

rep

它是一个数学类型,指示持续时间中有多少个滴答。

时间范围

它是一种 std::ratio 类型,表示持续时间的滴答周期。

成员函数

构造函数

根据给定的时钟和持续时间构造一个新的时间点。

time_since_epoch()

它提供从时钟点开始测量的时间间隔。

operator+= 和 operator-=

它按指定的时间量更改时间点。

operator++、operator++(int)、operator--、operator--(int) (C++20)

它增加或减少时间范围。

min()

此函数返回对应于最短可能持续时间的时间点。

max()

它提供对应于最长可行时间段的时间点。

非成员活动

operator+ 和 operator-。

它对时间点执行加法和减法运算。

operator==、operator!=、operator<、operator<=、operator>、operator>=、operator<=> (C++20)

比较两个时间点。

time_point_cast

它将给定时间点转换为同一时钟上具有不同持续时间的不同时间点。

floor(std::chrono::time_point) (C++17)

向下取整并将一个时间点转换为另一个。

ceil(std::chrono::time_point) (C++17)

向上取整,将一个时间点转换为另一个。

round(C++17) std::chrono::time_point

将时间点转换为另一个时,四舍五入到最接近的偶数。

支持类

std::common_type<std::chrono::time_point> (C++11)

它专门针对 std::chrono::time_point 的 std::common_type 特性。

std::hash<std::chrono::time_point> (C++26)

它为 std::chrono::time_point 提供哈希支持。

示例 1:

让我们举一个例子来说明 C++ 中的 std::chrono::time_point

输出

Current date and time: 2023-11-04 17:16:09
One week ago, the time was 2023-10-28 17:16:09

示例:2

此示例使用 <chrono> 工具来计算并以微秒为单位打印执行时间。

输出

Execution time: 7 microseconds.