方法1
頭文件是time.h
C++中的計時函數(shù)是clock()工腋,與其相關(guān)的數(shù)據(jù)類型是clock_t塌鸯。
clock_t:保存時間的數(shù)據(jù)類型褐望,為長整型數(shù)蜕琴。
函數(shù)定義原型為: clock_t clock(void);
該函數(shù)返回從“開啟這個程序進程”到“程序中調(diào)用clock()函數(shù)”時之間的CPU時鐘計時單元(clock tick)數(shù)注整,在MSDN上稱之為掛鐘時間(wal-clock)能曾。
#include <ctime>
using namespace std;
clock_t start = clock();
// do something...
clock_t end = clock();
cout << "花費了" << (double)(end - start) / CLOCKS_PER_SEC << "秒" << endl;
方法2
采用c++11標準度硝,編譯器需要支持c++11
#include <chrono>
using namespace std;
using namespace chrono;
auto start = system_clock::now();
// do something...
auto end = system_clock::now();
auto duration = duration_cast<microseconds>(end - start);
cout << "花費了"
<< double(duration.count()) * microseconds::period::num / microseconds::period::den
<< "秒" << endl;
此方法可以精確到微秒,輸出樣例:花費了0.123456秒
關(guān)鍵詞 auto 是一個“自動類型”寿冕,可以理解成“萬能類型”.
system_clock 是 C++11 提供的一個 clock蕊程。除此之外,還有兩個clock:steady_clock 和 high_resolution_clock
now( ) 表示計時的那“一瞬間”
duration_cast< > 表示類型轉(zhuǎn)換
microseconds 表示微秒驼唱。除此之外藻茂,還有五種時間單位:hours, minutes, seconds, milliseconds, nanoseconds
num 和 den分別表示分子(numerator)和分母(denominator)。在代碼中玫恳,num等于1辨赐, den等于1,000,000
count( ) 用來返回時間
參考
1.CSDN: C++ 學(xué)習(xí)系列(一)測試程序運行時間—clock()
2.CSDN: C++11 新的計時方法——std::chrono 大法好