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
廣告