Boost库的progress_timer和progress_display讲解

本文介绍了Boost库中的Progress组件,包括progress_timer和progress_display两个类。progress_timer能够在析构时自动输出执行时间,而progress_display则以进度条的形式显示程序执行过程,提供友好的用户界面。

一、概述

progress_timerprogress_display这两个类定义在文件progress.hppprogress_timer是继承自timer的一个定时器,progress_timer的行为类似timer函数,只是progress_timer的析构函数在适当的地方以正确的形式展示一条消逝的时间信息。也就是说,该函数会在析构时自动输出时间。progress_display在适当的地方以适当的形式显示已程序的执行过程,也就是一个进度条,这样它可以提供一个友好的用户界面。

二、类的代码详解

#ifndef BOOST_PROGRESS_HPP
#define BOOST_PROGRESS_HPP
#include <boost/timer.hpp>
#include <boost/noncopyable.hpp>
#include <boost/cstdint.hpp>  //为是使用这个变量uintmax_t
#include <iostream>        
#include <string>            
namespace boost {
// progress_timer类和timer一样,除了析构函数能在合适的地方以适当的形式显示已经消逝的时间信息
class progress_timer : public timer, private noncopyable
{
 public:
  explicit progress_timer( std::ostream & os = std::cout )
     // os显示: 执行可能会被忽略,特别是在嵌入式系统中
     : timer(), noncopyable(), m_os(os) {}
  ~progress_timer()
  {
    try
    {
      std::istream::fmtflags old_flags = m_os.setf( std::istream::fixed,
                                                   std::istream::floatfield );
      std::streamsize old_prec = m_os.precision( 2 );
      m_os << elapsed() << " s\n"
                        << std::endl;
      m_os.flags( old_flags );
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The_Web3_社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值