在上文中,我们了解了一种对时间进行处理的boost类,今天我们就来学习另一种时间处理的类——progress_timer,它继承于timer类,拥有timer类的功能,又在其易用性上更进一步,接下来我们以代码对该类进行说明:
#include <iostream> #include <boost/progress.hpp> int main() { boost::progress_timer pt1; std::cout << pt1.elapsed_max() << std::endl; std::cout << pt1.elapsed_min() << std::endl; std::cout << pt1.elapsed() << std::endl; { boost::progress_timer pt2; } return 0; }
既然继承于timer,那timer的各种公有方法当然也是可以使用的。在阅读代码时,各位可能会有疑问,在代码末尾定义了一个实例pt2,却不对它进行任何操作,这有什么实际用途么?答案是:有,因为progress_timer在构造时自动开始计时,析构时将结果输出到流中,由输出流对外输出。所以它比timer更加方便,我们无需执行任何操作,一切由其自身执行。代码中这种块作用域的声明方式对于同一份代码中测试多种算法也是比较有用的。
最后,我们需要注意的一点是,progress_timer精度直到小数点后两位,处理普通时间问题应该比较轻松。若需要更多精度,则需要自己进一步定制了。
时间: 2024-10-08 01:09:14