zoukankan      html  css  js  c++  java
  • 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中“时间和日期”的空白;

      

  • 相关阅读:
    this指向问题
    b继承a的函数
    如何解决跨域问题
    事件冒泡和阻止事件冒泡
    Spring5(二)——IOC
    MySQL基础(四)——
    MySQL基础(二)——常用命令
    MySQL基础(一)——入门
    Linux(二)——常用命令
    Linux(一)——简介
  • 原文地址:https://www.cnblogs.com/BlueGeek/p/2948266.html
Copyright © 2011-2022 走看看