亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++11時間日期庫chrono的使用

 更新時間:2022年01月25日 10:28:15   作者:guodxu  
chrono是C++11中新加入的時間日期操作庫,可以方便地進行時間日期操作,本文詳細(xì)的介紹了一下如何使用,感興趣的可以了解一下

chrono是C++11中新加入的時間日期操作庫,可以方便地進行時間日期操作,主要包含了:duration, time_point, clock。

時鐘與時間點

chrono中用time_point模板類表示時間點,其支持基本算術(shù)操作;不同時鐘clock分別返回其對應(yīng)類型的時間點。

clock

時鐘是從一個時點開始,按照某個刻度的計數(shù);chrono同時提供了三種時鐘(通過now()獲取當(dāng)前時間點):

  • system_clock:系統(tǒng)時鐘,相對epoch(1970-01-01 00:00:00UTC)的時間間隔;
  • steady_clock:單調(diào)時鐘,只能增長(后一次調(diào)用now()得到的時間總是比前一次的值大);一般是相對于系統(tǒng)啟動時間的時間間隔;
  • high_resolution_clock:高精度時鐘(當(dāng)前系統(tǒng)能提供的最高精度時鐘,很可能就是steady_clock),也是單調(diào)的;

需要得到絕對時點的場景使用system_clock;需要得到時間間隔,且不受系統(tǒng)時間修改而受影響時使用steady_clock。

時間顯示

在C++20中直接有to_stream直接輸出system_clock時鐘;但在此之前,只能通過間接的方式來輸出:

auto tNow = system_clock::now();
auto tmNow = system_clock::to_time_t(tNow);
auto locNow = std::localtime(&tmNow);
cout<<std::put_time(locNow, "%Y-%m-%d %H:%M:%S")<<endl; // 2019-12-20 19:35:12

system_clock::from_time_t(...)可以把time_t類型時間轉(zhuǎn)換為time_point,便于chrono使用。

運行計時

通過steady_clock/high_resolution_clock可方便的進行計時:

public:
? explicit XRunTime{bool bStart){
? ? if(bStart) Restart();
? }

? void Restart(){
? ? m_tpStart = high_resolution_clock::now();
? }

? double Stop(){
? ? return operator()();
? }
? double operator()(void){
? ? auto tpEnd = high_resolution_clock::now();
? ? auto elap = tpEnd - m_tpStart;
? ? return (double)elap.count() / std::nano::den; //返回運行的秒數(shù),如1.00345
? }
}

時間間隔duration

chrono中使用duration模板類來表示時間間隔,并定義了從小時到納秒的時間間隔。

duration模板

duration使用一個數(shù)值(表示時鐘數(shù))和分?jǐn)?shù)(ratio)來表示具體間隔。支持基本的算術(shù)運算,并通過count()獲取具體的時鐘數(shù)。

template<typename _Rep, typename _Period = ratio<1>>
struct duration
{
? typedef _Rep ? rep;

? constexpr _Rep count() const{
? ? return (_MyRep);
? }
? ...
private:
? _Rep ?_MyRep; ?//時鐘計數(shù)
};

基準(zhǔn)是秒,并依次定義了常用的間隔,如:

typedef duration<long long> seconds;
typedef duration<long long, milli> milliseconds;
typedef duration<long long, ratio<3600>> hours;

不同的時間間隔可以直接進行算術(shù)運算,如休眠需要毫秒?yún)?shù),我們可以封裝接收秒與毫秒的接口:

void MySleep(int nSec, int nMillSec){
  std::chrono::seconds secs(nSec);
  std::chrono::milliseconds mills(nMillSec);
  std::this_thread::sleep_for(secs+mills);
}

duration_cast

使用duration_cast可以方便的在不同時間單位間進行轉(zhuǎn)換,如:

auto sec=seconds(123);
auto minu=duration_cast<minutes>(sec);
cout<<sec.count()<<","<<minu.count()<<endl; // 123,2

ratio

ratio是一個分?jǐn)?shù)模板類,第一個參數(shù)為分子,第二個參數(shù)為分母;通過靜態(tài)成員可獲?。?/p>

  • num:分子
  • den:分母
typedef ratio<1, 1000> milli;
typedef ratio<1000, 1> kilo;
cout<<milli::den<<endl; // 1000

到此這篇關(guān)于C++11時間日期庫chrono的使用的文章就介紹到這了,更多相關(guān)C++11時間日期庫chrono 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言表達(dá)式求值中類型轉(zhuǎn)換和優(yōu)先級等問題詳解

    C語言表達(dá)式求值中類型轉(zhuǎn)換和優(yōu)先級等問題詳解

    表達(dá)式求值是一個常見的問題,可以用C語言實現(xiàn),下面這篇文章主要給大家介紹了關(guān)于C語言表達(dá)式求值中類型轉(zhuǎn)換和優(yōu)先級等問題的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • C語言 指針與數(shù)組的詳解及區(qū)別

    C語言 指針與數(shù)組的詳解及區(qū)別

    這篇文章主要介紹了C語言 指針與數(shù)組的詳解及對比的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • C語言鏈表詳解及代碼分析

    C語言鏈表詳解及代碼分析

    這篇文章主要介紹了C語言鏈表詳解及代碼分析,說明了鏈表的定義與概念,通過詳細(xì)的代碼展示了基于鏈表的增刪改查功能,希望本文能對你有所幫助
    2021-06-06
  • C++編譯原理之求解First集合

    C++編譯原理之求解First集合

    這篇文章主要介紹的是C++/編譯原理求解First集合,本文將圍繞該話題詳細(xì)展開全文,需要的小伙伴可以參考一下
    2021-10-10
  • 基于C語言自制華容道游戲的示例代碼

    基于C語言自制華容道游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言自制華容道游戲,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C語言有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-03-03
  • C語言實現(xiàn)飛機游戲(1)

    C語言實現(xiàn)飛機游戲(1)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)飛機游戲的第一部分,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C語言中的四種常量詳解

    C語言中的四種常量詳解

    本篇文章是c語言基礎(chǔ)篇,主要講述一下常量,常量即不可被直接修改的量(const修飾的常變量可間接修改,后續(xù)文章會繼續(xù)說明)請大家持續(xù)關(guān)注腳本之家
    2021-10-10
  • window調(diào)用api列出當(dāng)前所有進程示例

    window調(diào)用api列出當(dāng)前所有進程示例

    這篇文章主要介紹了window調(diào)用api列出當(dāng)前所有進程示例,需要的朋友可以參考下
    2014-04-04
  • C++中智能指針unique_ptr的實現(xiàn)詳解

    C++中智能指針unique_ptr的實現(xiàn)詳解

    智能指針本質(zhì)上并不神秘,其實就是?RAII?資源管理功能的自然展現(xiàn)而已,這篇文章主要為大家詳細(xì)介紹了如何實現(xiàn)?C++中智能指針的?unique_ptr,需要的可以了解下
    2024-01-01
  • C++?auto關(guān)鍵字的小知識點分享

    C++?auto關(guān)鍵字的小知識點分享

    這篇文章主要是來和大家介紹一些C++中的小知識點,本文將從auto關(guān)鍵字開始講起,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-05-05

最新評論