我正在使用下面的代碼來計算執行時間。當我從./a.out < input.txt
. 但是當我手動撰寫輸入時,它也包括那個時間。有沒有辦法排除用戶輸入所花費的時間?
auto begin = chrono::high_resolution_clock::now();
// my code here has cin for input
auto end = chrono::high_resolution_clock::now();
cout << chrono::duration_cast<chrono::duration<double>>(end - begin).count() << " seconds";
編輯:我知道我們可以計算 cin 之前的時間,然后減去它。還有其他方法嗎?
uj5u.com熱心網友回復:
一種直接的方法是在需要用戶輸入時“凍結時間”,因此不要end
在輸入行之后創建變數,而是在輸入行之前創建它并在輸入之后再次重新啟動時間計算:
double total = 0;
auto begin = chrono::high_resolution_clock::now();
// code that needs time calculation
auto end = chrono::high_resolution_clock::now();
total = chrono::duration_cast<chrono::duration<double>>(end - begin).count();
// your code here that has cin for input
begin = chrono::high_resolution_clock::now();
// code that needs time calculation
end = chrono::high_resolution_clock::now();
total = chrono::duration_cast<chrono::duration<double>>(end - begin).count();
cout << total << " seconds";
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/477235.html
上一篇:如何在C 中回傳模板串列?