我想爲我的賦值計算一個函數的運行時間。我不斷得到0堅果我的老師嚴格地說,他想要一個非零值,即使是一個10尺寸的循環。我的代碼到目前爲止,這是在C++中獲取函數的運行時間
#include <chrono>
using namespace std;
using std::chrono::duration_cast;
using std::chrono::nanoseconds;
using std::chrono::steady_clock;
steady_clock::time_point t1 = steady_clock::now();
for(int i=0;i<times;i++){
bubbleSort(arr,size);
}
steady_clock::time_point t2 = steady_clock::now();
cout<<(float)duration_cast<nanoseconds>(t2-t1).count()/times<<" ";
我也試過chrono::high_resolution_clock
,clock()
等等。 主要問題是我必須給time=1; and size=10
一些非零值。 請建議我如何做到這一點?
你不能測量小於時鐘分辨率的時間。 –
什麼亞歷克斯說,也嘗試'high_resolution_clock'情況下'steady_clock'是不是在您的操作系統中的分辨率非常高。 – vanza
'bubbleSort'函數中有一個嵌套循環。即使是簡單的'cout <<「Hello Worl \ n」;'也會給出一些非零值。我不明白如何cout比嵌套循環需要更多的時間和檢查條件 – SSMA