时间

c++一直缺乏对时间和日期的处理能力,boost使用timer,date_timer,chrono完美解决这个问题。

timer

timer类可以测量时间的流逝,是一个小型计时器。

1     timer t;//声明即开始计时
2     cout<<t.elapsed()<<endl;//输出流逝时间

progress_timer

progress_timer会在析构时自动输出时间。

1 //方法1

2 progress_timer t;

3 cout<<t.elapsed()<<endl;

4 //方法2

5 { 6 progress_timer t; 7 }

progress_display

可以在控制台上显示程序的执行进度。

1     vector<string> v(100);
2     ofstream fs("./test.txt");
3     progress_display pd(v.size());
4     for(auto &x:v){
5         fs<<x<<endl;
6         ++pd;
7     }

效果

0%   10   20   30   40   50   60   70   80   90   100%
|----|----|----|----|----|----|----|----|----|----|
***************************************************
缺陷:无法将进度显示输出与程序的输出分离。

改进(并非完美):每次显示进度时重新显示进度刻度

1     vector<string> v(100);
2     ofstream fs("./test.txt");
3     progress_display pd(v.size());
4     for(auto pos=v.begin();pos!=v.end();pos++){
5         fs<<*pos<<endl;
6         //++pd;
7         pd.restart(v.size());
8         pd+=(pos-v.begin()+1);
9     }

 

posted @ 2018-07-19 19:31  闯红灯全国十强  阅读(90)  评论(0编辑  收藏  举报