




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第c++11chrono全面解析(最高可達(dá)納秒級別的精度)(2)時間點(diǎn)有個重要的函數(shù):durationtime_since_epoch()(用于獲取當(dāng)前時間點(diǎn)距離時間戳的時間長度)
即經(jīng)常用來得到當(dāng)前時間點(diǎn)到1970年1月1日00:00的時間距離、該函數(shù)返回的duration的精度和構(gòu)造time_point的時鐘(Clock)有關(guān)(見4時鐘詳解)。
#includeiostream
#includechrono
#includectime
usingnamespacestd;
intmain()
//距離時間戳2兩秒
chrono::time_pointchrono::system_clock,chrono::secondstp(chrono::seconds(2));
couttoepoch:tp.time_since_epoch().count()sendl;
//轉(zhuǎn)化為ctime,打印輸出時間點(diǎn)
time_ttt=chrono::system_clock::to_time_t(tp);
chara[50];
ctime_s(a,sizeof(a),tt);
couta;
system(pause
return0;
}
可以看出,時間戳就是使用的Unix的時間戳。
4.時鐘:(代表當(dāng)前系統(tǒng)的時間)
chrono中有三種時鐘:system_clock,steady_clock和high_resolution_clock。每一個clock類中都有確定的time_point,duration,Rep,Period類型。
system_clock是不穩(wěn)定的。因為時鐘是可調(diào)的,即這種是完全自動適應(yīng)本地賬戶的調(diào)節(jié)。這種調(diào)節(jié)可能造成的是,首次調(diào)用now()返回的時間要早于上次調(diào)用now()所返回的時間,這就違反了節(jié)拍頻率的均勻分布。穩(wěn)定鬧鐘對于超時的計算很重要,所以C++標(biāo)準(zhǔn)庫提供一個穩(wěn)定時鐘std::chrono::steady_clock。std::chrono::high_resolution_clock是標(biāo)準(zhǔn)庫中提供的具有最小節(jié)拍周期(因此具有最高的精度的時鐘)。
上文所說time_since_epoch(),以及將要介紹的now()函數(shù)的返回值都依賴于時鐘的精度,測試時鐘的精度的一種方法就是:
#includeiostream
#includechrono
usingnamespacestd;
intmain()
coutsystemclock:
coutchrono::system_clock::period::num/chrono::system_clock::period::densendl;
coutsteadyclock:
coutchrono::steady_clock::period::num/chrono::steady_clock::period::densendl;
couthighresolutionclock:
coutchrono::high_resolution_clock::period::num/chrono::high_resolution_clock::period::densendl;
system(pause
return0;
}
windows系統(tǒng)的測試結(jié)果是system_clock的精度是100納秒,而high_resolution的精度是1納秒,對于程序來說,一般毫秒級就夠了,所以說chrono提供的時鐘精度綽綽有余。
(1)成員函數(shù)statictime_pointnow()noexcept;用于獲取系統(tǒng)的當(dāng)前時間。
(2)由于各種time_point表示方式不同,chrono也提供了相應(yīng)的轉(zhuǎn)換函數(shù)time_point_cast。
templateclassToDuration,classClock,classDuration
time_pointClock,ToDurationtime_point_cast(consttime_pointClock,Durationtp);
傳一個要轉(zhuǎn)換為的精度的duration模板參數(shù)和一個要轉(zhuǎn)換的time_point參數(shù)(用法見下面綜合應(yīng)用)
(3)其他成員函數(shù):
to_time_t()time_point轉(zhuǎn)換成time_t秒
from_time_t()從time_t轉(zhuǎn)換成time_point
綜合應(yīng)用:
輸出當(dāng)前時間,并且計算當(dāng)前的時間距離1970年1月1日00:00的毫秒數(shù)
#includeiostream
#includechrono
#includectime
usingnamespacestd;
intmain()
//定義毫秒級別的時鐘類型
typedefchrono::time_pointchrono::system_clock,chrono::millisecondsmicroClock_type;
//獲取當(dāng)前時間點(diǎn),windowssystem_clock是100納秒級別的(不同系統(tǒng)不一樣,自己按照介紹的方法測試),所以要轉(zhuǎn)換
microClock_typetp=chrono::time_point_castchrono::milliseconds(chrono::system_clock::now());
//轉(zhuǎn)換為ctime.用于打印顯示時間
time_ttt=chrono::system_clock::to_time_t(tp);
char_time[50];
ctime_s(_time,sizeof(_time),tt);
coutnowtimeis:_time;
//計算距離1970-1-1,00:00的時間長度,因為當(dāng)前時間點(diǎn)定義的精度為毫秒,所以輸出的是毫秒
coutto1970-1-1,00:00tp.time_since_epoch().count()msendl;
system(pause
return0;
}
通過兩張圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 帶學(xué)徒合同協(xié)議書怎么寫
- 2025合同能源管理項目進(jìn)展報告
- 黨建公園工程合同協(xié)議書
- 還建房房合同協(xié)議書
- 酒店如何簽署協(xié)議書合同
- 中招地理考試題及答案
- 嵌入式開發(fā)中的需求分析技巧試題及答案
- 剖析公共政策在危機(jī)應(yīng)對中的角色試題及答案
- 全款買房子合同協(xié)議書
- 針對新手的公路工程考試試題
- 基礎(chǔ)有機(jī)化學(xué)實驗智慧樹知到期末考試答案章節(jié)答案2024年浙江大學(xué)
- (高清版)JCT 864-2008 聚合物乳液建筑防水涂料
- ZXB∕T 0202-2013 球墨鑄鐵給排水管道工程施工及驗收規(guī)范 技術(shù)要求
- 老年專科護(hù)理考試試題
- 語法大全之一般現(xiàn)在時動詞三單變化練習(xí)題-(答案)
- 建筑保溫工程包工包料合同協(xié)議書范本
- 中醫(yī)病歷書寫基本規(guī)范
- MOOC 美術(shù)鑒賞-河南理工大學(xué) 中國大學(xué)慕課答案
- 頁巖氣及其成藏特征
- 旅行社掛靠合同協(xié)議書模板
- 植物生理學(xué)課件(王小菁-第8版)-第五章-植物同化物的運(yùn)輸
評論
0/150
提交評論