C++ 库 - <chrono>



C++ 中的<chrono>库提供了一套用于处理时间和日期功能的工具。它旨在处理持续时间、时间点和时钟,使其可用于基于时间的操作,例如测量函数执行时间或计划事件。它包含以下列出的三个主要组件

  • 持续时间 - 它表示两个时间点之间的时间差,并以不同的时间单位(如小时、分钟和秒)进行测量。
  • 时间点 - 它表示特定时间点,从系统特定的纪元开始测量。它通过组合时钟和持续时间来创建。
  • 时钟 - 它有助于获取当前时间或时间点。该库提供了三种类型的时钟;它们是 system_clock、steady_clock 和 high_resolution_clock。

<chrono> 库有助于消除使用整数或浮点数进行手动时间计算的风险。常用的 C++ <chrono> 复制函数如下所示,以及它们的描述。

包含 <chrono> 头文件

要在 C++ 程序中包含 <chrono> 头文件,可以使用以下语法。

#include <chrono>

<chrono> 头文件的函数

以下是 <chrono> 头文件中所有函数的列表。

序号 函数和描述
1 operator=

它分配内容。

2 count

它返回滴答次数。

3 zero

它返回特殊的持续时间值零。

4 min

它返回特殊的持续时间值最小值。

5 max

它返回特殊的持续时间值最大值。

6 operator+

它实现一元 +。

7 operator-

它实现一元 -。

8 operator++

它递增滴答次数。

9 operator--

它递减滴答次数。

非成员函数

序号 函数和描述
1 operator+

它实现以持续时间为参数的算术运算。

2 operator-

它实现以持续时间为参数的算术运算。

3 operator*

它实现以持续时间为参数的算术运算。

4 operator==

它比较两个持续时间。

5 operator!=

它比较两个持续时间。

6 operator<

它比较两个持续时间。

7 operator>

它比较两个持续时间。

测量执行时间

在以下示例中,我们将使用 std::chrono::high_resolution_clock 来测量代码的执行时间。

#include <iostream>
#include <chrono>
#include <thread>
int main() {
   auto x = std::chrono::high_resolution_clock::now();
   std::this_thread::sleep_for(std::chrono::seconds(3));
   auto y = std::chrono::high_resolution_clock::now();
   std::chrono::duration < double > duration = y - x;
   std::cout << "Result : " << duration.count() << " seconds\n";
   return 0;
}

输出

以上代码的输出如下:

Result : 3.00008 seconds

使用持续时间

让我们看下面的例子,我们将使用 std::chrono::duration 创建和操作持续时间。

#include <iostream>
#include <chrono>
int main() {
   std::chrono::duration < int > a(11);
   std::chrono::duration < int, std::ratio < 60 >> b(22);
   auto x = a + b;
   std::cout << "Result : " << x.count() << " seconds\n";
   return 0;
}

输出

以下是以上代码的输出:

Result : 1331 seconds
广告