C++11 Chrono 庫 詳解
阿新 • • 發佈:2022-01-12
良心的C++11改進了落後的ctime庫,為我們提供了一個更為強大的chrono庫
匯入很簡單,只需要一行程式碼:
#include <chrono>
之後,您就可以愉快的使用chrono庫了!本篇blog就到這裡,下次再見!
1. 首先是最基本的Ratio 與 Durations
std::chrono::ratio 是一種用來表示有理數分數的東西,不過它的功能僅限於把分子和分母約分到最簡
template<std::intmax_t Num, std::intmax_t Denom = 1> class ratio;
其中Num表示分子,Demon表示分母
這個類有兩個成員,一個是num,一個是den,分別表示約分後的分子和分母
示例程式:
#include <chrono>
int main()
{
ratio<3, 9> a;
printf("%ld %ld\n", a.num, a.den);
}
輸出為:1, 3 (約分後的分子分母)
std::chrono::duration 是表示一段時間間隔的資料型別,比如兩個小時,12.88秒,半個時辰,一炷香的時間等等,只要能換算成秒即可。
template <class Rep, class Period = ratio<1>> class duration;
其中,Rep表示 想要儲存的數值型別,比如int, float, double, long long
Period是ratio型別,用來表示 時間單位,比如second, milisesecond
C++考慮到您懶得寫程式碼,於是預定義了一些常用的ratio型別:
名稱(定義於名稱空間std::chrono) | 中文釋義 | 定義 |
nanoseconds | 納秒 |
|
microseconds | 微秒 |
|
milliseconds | 毫秒 |
|
seconds | 秒 |
|
minutes | 分鐘 |
|
hours | 小時 |
|