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

c++11 Chrono時間庫的使用小結

 更新時間:2025年11月28日 09:51:15   作者:~一葉、  
本文主要介紹了c++11 Chrono時間庫的使用小結,包括duration、clock和time_point,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1. 持續(xù)時間 duration

template<class Rep, class Period = ratio<1>>
class duration;

class Rep: 滴答數(shù)
class Period: 滴答周期,默認1秒

1) 常用方法

count / zero / min / max
支持算術運算 + - * / % ++ – += -= *= /= %= (不同的Period之間會自動轉換)

2) 示例

duration<long, ratio<60>> d1(2);  //2分鐘
duration<long, ratio<1>>  d2(30); //30秒
duration<double, ratio<60>> d3 = d1+d2; //2.5分
count << d3.count() << "minutes" << endl;

3) 標準定義

//X 64 bits表示:有符號整數(shù)類型,且位數(shù)至少為64位
typedef duration<X 64 bits, nano>  nanoseconds; //納秒
typedef duration<X 55 bits, micro> microseconds; //微秒
typedef duration<X 45 bits, milli> milliseconds; //毫秒 
typedef duration<X 35 bits>        seconds; //秒 
typedef duration<X 29 bits, ratio<60>>    minutes; //分
typedef duration<X 23 bits, ratio<3600>>  hours; //時

//例
auto t = hours(1) + minutes(2) + seconds(45);
count << seconds(t).count() << endl;

2. 時鐘 clock

  • system_clock 系統(tǒng)實時時鐘的真實時間
  • steady_clock time_point絕不遞減的時鐘
  • high_resolution_clock 高精度時鐘

1) 常用接口

// 均為靜態(tài)接口
now()  //獲取類型為time_point的當前時間點
to_time_t()  //將time_point轉換為time_t類型
from_time_t()  //將time_t轉換為time_point類型

localtime可將time_t類型轉換為tm表示的本地時間

2) 示例

//獲取當前時間
#include <time.h>      // time_t, locaktime, tm
#include <iomanip>     // put_time
system_clock::time_point tpoint = system_clock::now();
time_t tt = system_clock::to_time_t(tpoint);
tm* t = locaktime(&tt);
cout << put_time(t, "%H:%M:%S") << endl;
//計算代碼的執(zhí)行時間
auto start = system_clock::now();
// ... to do something
auto end = system_clock::now();
auto diff = end - start;
cout << duration<double, milli>(diff).count() << "ms" << endl;

3. 時點 time_point

  • time_point是一個時間點,存儲相對于紀元(1970/01/01)的一個duration。
  • time_since_epoch() 返回當前時間點到紀元的duration。
  • 每一個time_point都關聯(lián)一個clock,創(chuàng)建時需指定clock作為模板參數(shù)。

1) 構造函數(shù)

time_point();           //通過duration::zero初始化表示關聯(lián)clock的紀元
time_point(const duration& d); //通過duration初始化表示紀元+d
template<class Duration2>
time_point(const time_point<clock, Duration2>& t); //通過t.time_since_epoch初始化

2) 示例

time_point<steady_clock> tp1;
tp1 += minutes(10);
auto d1 = tp1.time_since_epoch();
duration<double> d2(d1);
cout << d2.count() << "seconds" << endl;

獲取時間差

#include <chrono>
#include <thread>


auto begin   = std::chrono::high_resolution_clock::now(); //起始
std::this_thread::sleep_for(std::chrono::milliseconds(800));//運行時長
auto end   = std::chrono::high_resolution_clock::now();//結束

//第一種 使用duration_cast計算
auto duration1 = std::chrono::duration_cast<std::chrono::seconds>(end - begin);
auto duration2 = std::chrono::duration_cast<std::chrono::milliseconds>(end - begin);
auto duration3 = std::chrono::duration_cast<std::chrono::microseconds>(end - begin);
auto duration4 = std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin);

std::cout << duration1.count() << std::endl; //本機測試結果: 0
std::cout << duration2.count() << std::endl; //本機測試結果: 812
std::cout << duration3.count() << std::endl; //本機測試結果: 812698
std::cout << duration4.count() << std::endl; //本機測試結果: 812698500

//第二種 使用durantion
std::chrono::duration<double, std::ratio<1, 1>> elapsed1 = end - begin;
std::chrono::duration<double, std::ratio<1, 1000>> elapsed2 = end - begin;
std::chrono::duration<double, std::ratio<1, 1000000>> elapsed3 = end - begin;
std::chrono::duration<double, std::ratio<1, 1000000000>> elapsed4 = end - begin;

std::cout << elapsed1.count() << std::endl; //本機測試結果: 0.812698
std::cout << elapsed2.count() << std::endl; //本機測試結果: 812.698
std::cout << elapsed3.count() << std::endl; //本機測試結果: 812698
std::cout << std::fixed << std::setprecision(0) << elapsed4.count() << std::endl; //本機測試結果: 812698500

獲取時間戳

//此處要用system_clock
auto now = std::chrono::system_clock::now();

//下面用到2種轉換方式,一種time_point_cast,一種duration_cast

// 獲取時間戳,單位為毫秒
auto ms = std::chrono::time_point_cast<std::chrono::milliseconds>(now).time_since_epoch().count();
// 輸出毫秒時間戳
std::cout << "Milliseconds timestamp: " << ms << std::endl;

// 獲取時間戳,單位為秒
auto sec = std::chrono::duration_cast<std::chrono::seconds>(now.time_since_epoch()).count();
// 輸出秒時間戳
std::cout << "Seconds timestamp: " << sec << std::endl;

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

相關文章

  • C++或Go求矩陣里的島嶼的數(shù)量詳解

    C++或Go求矩陣里的島嶼的數(shù)量詳解

    這篇文章主要介紹了C++和go實現(xiàn)LeetCode(200.島嶼的數(shù)量),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-09-09
  • VSCODE調試RDKit內核的方法步驟(C++)

    VSCODE調試RDKit內核的方法步驟(C++)

    本文主要介紹了VSCODE調試RDKit內核的方法步驟,這個過程可以分為三個部分:安裝 RDKit 所需環(huán)境,安裝 VSCode 相應插件, 寫調試代碼編譯,感興趣的可以了解一下
    2021-08-08
  • C語言用數(shù)組實現(xiàn)反彈球消磚塊

    C語言用數(shù)組實現(xiàn)反彈球消磚塊

    這篇文章主要為大家詳細介紹了C語言用數(shù)組實現(xiàn)反彈球消磚塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 使用C++設計開發(fā)一個功能完善的多進程管理器

    使用C++設計開發(fā)一個功能完善的多進程管理器

    一個健壯的多進程管理器不僅需要能夠按照依賴順序啟動進程,還要能夠優(yōu)雅地停止進程,并在進程意外崩潰時自動重啟,本文將詳細介紹如何使用C++開發(fā)一個功能完善的多進程管理器,需要的可以了解下
    2025-10-10
  • c++程序字符型的實例講解

    c++程序字符型的實例講解

    在本篇文章里小編給大家整理的是一篇關于
    2020-02-02
  • Qt實現(xiàn)窗口陰影效果的三種方法

    Qt實現(xiàn)窗口陰影效果的三種方法

    夫界面設計之道,光影為魂,一窗一影,皆可訴說著數(shù)字世界的深度與層次,Qt作為跨平臺GUI之翹楚,其陰影效果實現(xiàn)可謂大巧若拙,大智若愚,因此本文給大家介紹了Qt實現(xiàn)窗口陰影效果的三種方法,需要的朋友可以參考下
    2026-01-01
  • C語言中全局變量,局部變量,靜態(tài)局部變量的區(qū)分方式

    C語言中全局變量,局部變量,靜態(tài)局部變量的區(qū)分方式

    這篇文章主要介紹了C語言中全局變量,局部變量,靜態(tài)局部變量的區(qū)分方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解C++中string的用法和例子

    詳解C++中string的用法和例子

    string是C++標準庫的一個重要的部分,主要用于字符串處理。這篇文章主要介紹了C++ string的用法和例子,需要的朋友可以參考下
    2018-05-05
  • C語言實現(xiàn)簡易停車場管理系統(tǒng)

    C語言實現(xiàn)簡易停車場管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡易停車場管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++中頭文件和源文件詳細介紹

    C++中頭文件和源文件詳細介紹

    這篇文章主要介紹了C++中頭文件和源文件詳細介紹的相關資料,需要的朋友可以參考下
    2017-02-02

最新評論

夏河县| 廉江市| 元江| 图片| 郴州市| 黑河市| 西畴县| 孟州市| 历史| 社旗县| 紫阳县| 河西区| 邓州市| 蓬莱市| 神农架林区| 麦盖提县| 商都县| 买车| 颍上县| 辽阳县| 江华| 于田县| 安化县| 陕西省| 美姑县| 崇阳县| 五峰| 汪清县| 峨眉山市| 富川| 宣化县| 九江县| 大关县| 运城市| 垫江县| 庐江县| 清水河县| 定州市| 于都县| 军事| 长治县|