【Boost】timer、progress_timer和progress_display
Table of Contents
- 1 timer
- 2 progress_timer
- 3 progress_display
1 timer
timer t; //声明一个timer类对象t,调用构造函数开始计时
timer t(t0); //调用默认的复制构造函数,t的流逝时间与t0相同
成员函数:
- elapsed() 流逝的时间
- elapsed_max() 计时器最大范围
- elapsed_min() 计时器最小范围
- restart() 重新开始计时
2 progress_timer
该类构造函数开始计时,析构函数则在适当的位置以适当的形式打印自构造函数调用开始到析构函数调用的时间。
3 progress_display
以进度条的形式显示进度:
0% 10 20 30 40 50 60 70 80 90 100% |----|----|----|----|----|----|----|----|----|----| ************************************
progress_display( unsigned long expected_count,std::ostream& os, // os is hint; implementation may ignore
const std::string & s1 = "\n", //leading strings
const std::string & s2 = "",const std::string & s3 = "" )
成员函数:
- count() 进度计数
- expected_count() 返回初始化该类对象的expected_count值
- restart(unsigned long expected_count) 中止当前进度条的显示,并重新赋值
文档中给的例子:
// timer, job_timer, and progress_display sample program -------------------// // Copyright Beman Dawes 1998. Distributed under the Boost // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // See http://www.boost.org/libs/timer for documentation. // Revision History // 12 Jan 01 Cut time to 1.0 secs to speed regression tests (Beman Dawes) // 25 Sep 99 added elapsed_min() and elapsed_max() reporting // 16 Jul 99 Second beta // 6 Jul 99 Initial boost version #include <boost/progress.hpp> #include <iostream> #include <climits>using boost::timer; using boost::progress_timer; using boost::progress_display; using std::cout; using std::endl;int main() {timer t0; // used only for elapsed_max() and elapsed_min() cout << "timer::elapsed_min() reports " << t0.elapsed_min() << " seconds\n";cout << "timer::elapsed_max() reports " << t0.elapsed_max()<< " seconds, which is " << t0.elapsed_max()/3600.0 << " hours\n";cout << "\nverify progress_display(0) doesn't divide by zero" << endl;progress_display zero( 0 ); // verify 0 doesn't divide by zero ++zero;long loops;timer loop_timer;const double time = 1.0;cout << "\ndetermine " << time << " second iteration count" << endl;for ( loops = 0; loops < LONG_MAX&& loop_timer.elapsed() < time; ++loops ) {}cout << loops << " iterations"<< endl;long i;bool time_waster; // defeat [some] optimizers by storing result here progress_timer pt;timer t1;timer t4;timer t5;cout << "\nburn about " << time << " seconds" << endl;progress_display pd( loops );for ( i = loops; i--; ) {time_waster = loop_timer.elapsed() < time;++pd;}timer t2( t1 );timer t3;t4 = t3;t5.restart();cout << "\nburn about " << time << " seconds again" << endl;pd.restart( loops );for ( i = loops; i--; ) {time_waster = loop_timer.elapsed() < time;++pd;}if ( time_waster ) cout << ' '; // using time_waster quiets compiler warnings progress_display pd2( 50, cout, "\nLead string 1 ", "Lead string 2 ", "Lead string 3 " );for ( ; pd2.count() < 50; ++pd2 ) {}cout << "\nt1 elapsed: " << t1.elapsed() << '\n';cout << "t2 elapsed: " << t2.elapsed() << '\n';cout << "t3 elapsed: " << t3.elapsed() << '\n';cout << "t4 elapsed: " << t4.elapsed() << '\n';cout << "t5 elapsed: " << t5.elapsed() << '\n';cout << "t1 and t2 should report the same times (very approximately "<< 2*time << " seconds).\n";cout << "t3, t4 and t5 should report about the same times,\n";cout << "and these should be about half the t1 and t2 times.\n";cout << "The following elapsed time should be slightly greater than t1."<< endl;return 0; } // main
Author: visaya fan <visayafan[AT]gmail.com>
Date: 2012-04-30 00:22:18
HTML generated by org-mode 6.33x in emacs 23
【Boost】timer、progress_timer和progress_display相关推荐
- boost之timer,progress_timer,progress_display的介绍及使用
boost计时器相关的类有三个:boost::timer boost::progress_timer(继承自boost::timer) boost::progress_display boost::t ...
- boost::timer::progress_display相关的测试程序
boost::timer::progress_display相关的测试程序 实现功能 C++实现代码 实现功能 boost::timer::progress_display相关的测试程序 C++实现代 ...
- boost::timer模块timer、job_timer和progress_display示例程序
boost::timer模块timer.job_timer和progress_display示例程序 实现功能 C++实现代码 实现功能 boost::timer模块timer.job_timer和p ...
- boost::timer
作用: 用来计时. 使用方法: timer类初始化时,开始计时. 调用 elapsed() 时计时结束,返回 double 型,单位为秒. 调用 restart() 重新开始计时. 注: elapse ...
- boost::timer::cpu_timer相关的测试程序
boost::timer::cpu_timer相关的测试程序 实现功能 C++实现代码 实现功能 boost::timer::cpu_timer相关的测试程序 C++实现代码 #include < ...
- boost::timer模块检查在同一程序中使用 Chrono 和 Timer 不会导致链接错误
boost::timer模块检查在同一程序中使用 Chrono 和 Timer 不会导致链接错误 实现功能 C++实现代码 实现功能 boost::timer模块检查在同一程序中使用 Chrono 和 ...
- boost::timer::auto_cpu_timer相关的测试程序
boost::timer::auto_cpu_timer相关的测试程序 实现功能 C++实现代码 实现功能 boost::timer::auto_cpu_timer相关的测试程序 C++实现代码 #i ...
- boost::filesystem模块和boost::timer混合的测试程序
boost::filesystem模块和boost::timer混合的测试程序 实现功能 C++实现代码 实现功能 boost::filesystem模块和boost::timer混合的测试程序 C+ ...
- boost::timer demo
#include <iostream> #include <boost/timer.hpp> //timer的头文件 using namespace boost; //打开bo ...
最新文章
- Android Touch事件原理加实例分析
- ipywidgets库包的使用教程
- Understand Event-Driven Software Architecture
- Java调用Matlab程序
- Python 类的特殊成员方法详解
- Delphi 与 DirectX 之 DelphiX(46): TDIB.DoAntiAlias;
- 将cmd添加到鼠标右键,并且在任意目录下可以打开
- 2018-2019-1 20165208 《信息安全系统设计基础》第5周学习总结
- IntelliJ IDEA 2016
- 好消息好消息——带计算机课程的希捷移动硬盘发货啦
- 【2018徐州ICPC Gym-102012 M】Rikka with Illuminations【计算几何】
- amx-104 r-java_AMX-104 R·贾贾
- 一个人一个微博、一个App一个故事:通过微博草根账号做英语学习App的“爱卡微口语”获晨脉创投天使投资
- 无人机组装调试步骤(保姆级别教程)
- aws高可用mysql实现_Amazon RDS 的高可用性(多可用区) - Amazon Relational Database Service...
- matlab赋值一行,matlab – 0和1的矩阵,其中后续行中的赋值取决于前一行
- python1000以内水仙花数_python 计算1000以内的水仙花数
- tomcat的启动流程及原理
- XWiKi 部分汉化
- 企业网络营销分析报告