Table of Contents

  • 1 timer
  • 2 progress_timer
  • 3 progress_display

1 timer

timer t; //声明一个timer类对象t,调用构造函数开始计时
timer t(t0); //调用默认的复制构造函数,t的流逝时间与t0相同
成员函数:

  1. elapsed() 流逝的时间
  2. elapsed_max() 计时器最大范围
  3. elapsed_min() 计时器最小范围
  4. 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 = "" )

成员函数:

  1. count() 进度计数
  2. expected_count() 返回初始化该类对象的expected_count值
  3. 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相关推荐

  1. boost之timer,progress_timer,progress_display的介绍及使用

    boost计时器相关的类有三个:boost::timer boost::progress_timer(继承自boost::timer) boost::progress_display boost::t ...

  2. boost::timer::progress_display相关的测试程序

    boost::timer::progress_display相关的测试程序 实现功能 C++实现代码 实现功能 boost::timer::progress_display相关的测试程序 C++实现代 ...

  3. boost::timer模块timer、job_timer和progress_display示例程序

    boost::timer模块timer.job_timer和progress_display示例程序 实现功能 C++实现代码 实现功能 boost::timer模块timer.job_timer和p ...

  4. boost::timer

    作用: 用来计时. 使用方法: timer类初始化时,开始计时. 调用 elapsed() 时计时结束,返回 double 型,单位为秒. 调用 restart() 重新开始计时. 注: elapse ...

  5. boost::timer::cpu_timer相关的测试程序

    boost::timer::cpu_timer相关的测试程序 实现功能 C++实现代码 实现功能 boost::timer::cpu_timer相关的测试程序 C++实现代码 #include < ...

  6. boost::timer模块检查在同一程序中使用 Chrono 和 Timer 不会导致链接错误

    boost::timer模块检查在同一程序中使用 Chrono 和 Timer 不会导致链接错误 实现功能 C++实现代码 实现功能 boost::timer模块检查在同一程序中使用 Chrono 和 ...

  7. boost::timer::auto_cpu_timer相关的测试程序

    boost::timer::auto_cpu_timer相关的测试程序 实现功能 C++实现代码 实现功能 boost::timer::auto_cpu_timer相关的测试程序 C++实现代码 #i ...

  8. boost::filesystem模块和boost::timer混合的测试程序

    boost::filesystem模块和boost::timer混合的测试程序 实现功能 C++实现代码 实现功能 boost::filesystem模块和boost::timer混合的测试程序 C+ ...

  9. boost::timer demo

    #include <iostream> #include <boost/timer.hpp> //timer的头文件 using namespace boost; //打开bo ...

最新文章

  1. Android Touch事件原理加实例分析
  2. ipywidgets库包的使用教程
  3. Understand Event-Driven Software Architecture
  4. Java调用Matlab程序
  5. Python 类的特殊成员方法详解
  6. Delphi 与 DirectX 之 DelphiX(46): TDIB.DoAntiAlias;
  7. 将cmd添加到鼠标右键,并且在任意目录下可以打开
  8. 2018-2019-1 20165208 《信息安全系统设计基础》第5周学习总结
  9. IntelliJ IDEA 2016
  10. 好消息好消息——带计算机课程的希捷移动硬盘发货啦
  11. 【2018徐州ICPC Gym-102012 M】Rikka with Illuminations【计算几何】
  12. amx-104 r-java_AMX-104 R·贾贾
  13. 一个人一个微博、一个App一个故事:通过微博草根账号做英语学习App的“爱卡微口语”获晨脉创投天使投资
  14. 无人机组装调试步骤(保姆级别教程)
  15. aws高可用mysql实现_Amazon RDS 的高可用性(多可用区) - Amazon Relational Database Service...
  16. matlab赋值一行,matlab – 0和1的矩阵,其中后续行中的赋值取决于前一行
  17. python1000以内水仙花数_python 计算1000以内的水仙花数
  18. tomcat的启动流程及原理
  19. XWiKi 部分汉化
  20. 企业网络营销分析报告

热门文章

  1. uniapp中自定义返回和物理返回
  2. golang中字符串内置函数整理
  3. Codeforces 1036E. Covered Points
  4. Nginx反向代理实现HTTPS网站
  5. SDN第三次上机作业
  6. 有关Nodejs的一些插件介绍
  7. 返回content-length=0问题解决
  8. 宝塔控制面板创建ftp后链接不上的解决方法
  9. Angular 中后台前端解决方案 - Ng Alain 介绍
  10. 记一次前端问题解决历程(Cannot read Property ‘call‘ of undefined)