最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++11時(shí)間日期庫(kù)chrono的使用

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

chrono是C++11中新加入的時(shí)間日期操作庫(kù),可以方便地進(jìn)行時(shí)間日期操作,主要包含了:duration, time_point, clock。

時(shí)鐘與時(shí)間點(diǎn)

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

clock

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

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

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

時(shí)間顯示

在C++20中直接有to_stream直接輸出system_clock時(shí)鐘;但在此之前,只能通過(guò)間接的方式來(lái)輸出:

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類型時(shí)間轉(zhuǎn)換為time_point,便于chrono使用。

運(yùn)行計(jì)時(shí)

通過(guò)steady_clock/high_resolution_clock可方便的進(jìn)行計(jì)時(shí):

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; //返回運(yùn)行的秒數(shù),如1.00345
? }
}

時(shí)間間隔duration

chrono中使用duration模板類來(lái)表示時(shí)間間隔,并定義了從小時(shí)到納秒的時(shí)間間隔。

duration模板

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

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

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

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

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

不同的時(shí)間間隔可以直接進(jìn)行算術(shù)運(yùn)算,如休眠需要毫秒?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可以方便的在不同時(shí)間單位間進(jìn)行轉(zhuǎn)換,如:

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

ratio

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

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

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

相關(guān)文章

  • 詳解C++ 中的三種繼承方式

    詳解C++ 中的三種繼承方式

    這篇文章主要介紹了詳解C++ 中的三種繼承方式,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下
    2021-03-03
  • C語(yǔ)言實(shí)現(xiàn)出棧序列

    C語(yǔ)言實(shí)現(xiàn)出棧序列

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)出棧序列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C語(yǔ)言輸出任意邊長(zhǎng)的菱形

    C語(yǔ)言輸出任意邊長(zhǎng)的菱形

    大家好,本篇文章主要講的是C語(yǔ)言輸出任意邊長(zhǎng)的菱形,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C++實(shí)現(xiàn)寢室衛(wèi)生管理系統(tǒng)

    C++實(shí)現(xiàn)寢室衛(wèi)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)寢室衛(wèi)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 深度探究C++中的函數(shù)重載的用法

    深度探究C++中的函數(shù)重載的用法

    這篇文章主要介紹了C++中的函數(shù)重載用法,包括重載時(shí)參數(shù)類型的差異以及匹配和轉(zhuǎn)換等方面問(wèn)題的講解,需要的朋友可以參考下
    2016-01-01
  • C++ string和wstring相互轉(zhuǎn)換方式

    C++ string和wstring相互轉(zhuǎn)換方式

    這篇文章主要介紹了C++ string和wstring相互轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C++構(gòu)建緩存加速的實(shí)現(xiàn)示例

    C++構(gòu)建緩存加速的實(shí)現(xiàn)示例

    本文主要介紹了C++構(gòu)建緩存加速的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-10-10
  • C語(yǔ)言之結(jié)構(gòu)體(struct)詳解

    C語(yǔ)言之結(jié)構(gòu)體(struct)詳解

    本文主要介紹C語(yǔ)言 結(jié)構(gòu)體的知識(shí),學(xué)習(xí)C語(yǔ)言肯定需要學(xué)習(xí)結(jié)構(gòu)體,這里詳細(xì)說(shuō)明了結(jié)構(gòu)體并附示例代碼,供大家參考學(xué)習(xí),有需要的小伙伴可以參考下
    2021-10-10
  • Matlab實(shí)現(xiàn)極坐標(biāo)堆疊柱狀圖的繪制

    Matlab實(shí)現(xiàn)極坐標(biāo)堆疊柱狀圖的繪制

    極坐標(biāo)堆疊圖也是風(fēng)玫瑰圖的常用形式,MATLAB的bar繪制的條形圖可以繪制成堆疊形式,但是并沒(méi)有一個(gè)自帶函數(shù)可以繪制極坐標(biāo)堆疊圖。本文將為大家提供Matlab繪制極坐標(biāo)堆疊柱狀圖的示例代碼,需要的可以參考一下
    2022-08-08
  • C++基本算法思想之遞推算法思想

    C++基本算法思想之遞推算法思想

    遞推算法需要用戶知道答案和問(wèn)題之間的邏輯關(guān)系。在許多數(shù)學(xué)問(wèn)題中,都有明確的計(jì)算公式可以遵循,因此可以采用遞推算法來(lái)實(shí)現(xiàn)
    2013-10-10

最新評(píng)論

无为县| 青铜峡市| 英吉沙县| 南汇区| 潼南县| 蓝田县| 永靖县| 桐乡市| 灌南县| 长阳| 永康市| 乐平市| 龙井市| 易门县| 平邑县| 通辽市| 平谷区| 广河县| 舞钢市| 金华市| 广东省| 蒲城县| 大英县| 屏东市| 肇源县| 襄樊市| 永胜县| 托克托县| 庆阳市| 肇东市| 登封市| 札达县| 浏阳市| 罗源县| 禹州市| 绵阳市| 荆门市| 巩义市| 阿鲁科尔沁旗| 丰县| 和政县|