国外流量统计

Boost库学习(2) 时间与日期

一、背景

  C++缺乏对时间和日期的处理能力,不得不求助于C,使用笨拙的结构和函数(struct tm,time())。现在,Boost使用timerdate_time解决了这个问题。

二、timer简介

  1、timer是一个很小的库,提供简易的度量时间和进度显示功能,可以用于性能测试等需要计时的任务。它包含三个组件:分别是 计时类 timer、progress_timer和进度指示类progress_display

  2、组件介绍

  作用 需包含的头文件 其他说明
timer 测量时间的流逝,提供毫秒级别的计时精度和操作函数

#include<boost/timer.hpp>

using namespace boost;

常用成员函数:

elapsed_min():timer测量时间的最小精度;

elapsed_max():timer测量时间的最大范围;

progress_timer 也是一个计时器,继承自timer,会在析构时自动输出时间

#include<boost/progress.hpp>

using namespace boost;

其构造函数说明:

progress_timer(std::ostream& os),允许将析构输出定向到指定的IO流里;

progress_display 在控制台上显示程序执行的进度

#include<boost/progress.hpp>

using namespace boost;

缺陷:

无法把进度显示输出和程序输出分离;

 

三、date_time库简介(有待进一步整理)

  处理日期和时间(取当地日期时间,日期时间的运算,与tm机构的转换,日期时间的格式化等),

 

四、总结

  1、基于跨平台可移植的指导思想,timer实现源码中使用了C标准中的std::clock();

  2、timer和progress_timer是计时小工具,精度不够但是好用够用,特别是progress_timer,利用了C++析构函数会被自动调用的特点能够自动显示时间;

  3、progress_display可显示程序执行的进度,但是容易被程序其他的输出打乱;

  4、progress_timer和progress_display均私有继承了noncopyable类,防止被无意的拷贝而破坏了正确的行为;

  5、date_time填补了C++98中“时间和日期”的空白;

 

 

  

 

posted @ 2013-03-07 16:06  蓝海骇客  阅读(283)  评论(0编辑  收藏  举报
无觅关联推荐,快速提升流量