#chrono でプログラムの処理時間を10ループ合計して計測しようとしたのですが,加算されません.
以下にコードを示します.
sum_timeが1000 -> 2000 -> 3000と変化してほしいのですがsum_timeは1000 から変化しません.
#include <iostream> #include <chrono> double elapsed , sum_time; std::chrono::system_clock::time_point start, end; // 型は auto で可 int b=0; int main(){ while(b<=10){ start = std::chrono::high_resolution_clock::now(); // 計測開始時間 int i; while (elapsed < 1000){ end = std::chrono::high_resolution_clock::now(); // 計測終了時間 elapsed = (std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()); //処理に要した時間をミリ秒に変換 } sum_time += std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count(); b++; printf("%lf\n",sum_time ); } }
プログラムの以下の部分を
sum_time += std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
以下のように変更すると,加算されますが原因が分かりません.
sum_time += elapsed ;
どなたか,よろしくお願いいたします.
sum_time = と sum_time += の2種類のコードが書かれていますが
sum_time += の方でも問題が出ているのですか
> 以下にコードを示します.
には「sum_time +=…」と書かれてますが、
> プログラムの以下の部分を
には「sum_time =…」と書かれてます
> sum_timeは1000 から変化しません.
は、上記のどちらで実行した時の結果ですか?
sigsegv 様
此方ではg++ でコンパイル可能でした.
また,https://paiza.io/projects/EzWGrC6hDXnE_h9ZUOPXRA
でも確認できました.こちらを試していただけると幸いです
jbpb0 様
sum_time += で実行したときになります
sum_time = は記載ミスです.修正しました
両名とも回答していただきありがとうございます
よろしくおねがいします
回答1件
あなたの回答
tips
プレビュー