重慶微網(wǎng)站建設寧波網(wǎng)絡推廣軟件
C++ 時間庫chrono計算程序運行時間
本文總結了chrono庫的引入方法以及計算程序片段運行時間的方法
一、chrono庫的引入方法(注意事項)
首先chrono是屬于std命名空間的。
所以在程序中應該這樣包含頭文件:
#include <chrono>
using namespace std;
using namespace chrono;// 在“using namespace std;”后面寫這一行代碼的話就等價于“using namespace std::chrono;”
如果是像下面這樣的話,那么就會報錯。
#include <chrono>
using namespace chrono;
using namespace std;
或者也可以直接using namespace std::chrono;
一句話總結第一節(jié)的主要內(nèi)容:chrono是std下的,using 命名空間時不要忘記先后順序
二、程序運行時間計算
代碼示例如下:
主要是用high_resolution_clock::now(); 和 duration_cast<milliseconds>,前者表示時間點,后者用來計算時間段長度(計算秒用seconds,計算毫秒用milliseconds,計算微秒用microseconds)。
記不清楚什么類型,那就把所有的變量均使用auto類型來存儲。
#include <iostream>
#include <chrono>
#include <vector>using namespace std;
using namespace chrono;int main() {// 獲取當前時間點(開始時間)auto start = high_resolution_clock::now();// 測試代碼片段1:循環(huán)for (int i = 0; i < 1000000; ++i) {// 空循環(huán)}// 獲取當前時間點(中間時間)auto middle = high_resolution_clock::now();// 測試代碼片段2:向量操作vector<int> vec;for (int i = 0; i < 1000000; ++i) {vec.push_back(i);}// 獲取當前時間點(結束時間)auto end = high_resolution_clock::now();// 計算各個代碼片段的時間差auto duration1 = duration_cast<milliseconds>(middle - start);auto duration2 = duration_cast<milliseconds>(end - middle);// 輸出結果cout << "代碼片段1運行時間:" << duration1.count() << " 毫秒" << endl;cout << "代碼片段2運行時間:" << duration2.count() << " 毫秒" << endl;return 0;
}