boost学习之二(时间 timer库)
来源:互联网 发布:java 并发数量控制 编辑:程序博客网 时间:2024/06/07 12:42
首先timer是一个很小的库,提供简单的度量时间和进度显示功能。一般性能测试等需要计时的任务可以用这个简单的库
timer有两个组件组成 早起的timer(v1)和新的cpu_timer(V2)。 cpu_timer(v2) 之后详细说明,本篇文章暂时只讲解timer(v1)
timer(v1) 库包含三个组件。 计时器timer、progress_timer和进度指示器progress_display.
1、timer是一个小型的计时器,提供毫秒级别的计时精度。程序员可以手工控制使用。
用法:
#include "boost/progress.hpp"#include <iostream>using namespace boost;int main(){ timer t;// 可度量的最大时间,一小时为单位 std::cout << "max timespan:" << t.elapsed_max()/3600 << "h" << std::endl;// 可度量的最小时间,以秒为单位 std::cout << "min timespan:" << t.elapsed_min() << "s" << std::endl;// 输出已经流逝的时间 std::cout << "now time elapsed:" << t.elapsed() << "s" << std::endl;getchar();return 0;}注意包含的头文件#include "boost/progress.hpp" 必须是你自己配置好的例如在vs2012中的附加包含目录下要把boost所在位置注明
打印结果是
2、progress_timer
progress_timer也是一个计时器,它继承自timer。不过在调用析构时会自动输出时间
用法:
#include <iostream>#include <windows.h>#include "boost/progress.hpp"using namespace boost;int main(){// 注意生命一个对象之后当生命周期结束的时候会自动调用析构函数从而实现打印, 所以可以直接用{}来确定他的生命周期{progress_timer t;// 第一个计时Sleep(2000);}{progress_timer t2;// 第二个计时器Sleep(3000);}// 也可以不加大括号用法和timer一样{progress_timer t3;// 第三个计时器Sleep(4000);std::cout << t3.elapsed() << std::endl;}getchar();return 0;}打印结果是:
注意最后打印了两次4一次是调用的elapsed()函数打印的 ,一次是生命周期直接调用的析构函数打印的。
3、progress_display可以在控制台上显示程序的执行进度,他能够提供一个友好的用户界面,即类似于load界面。
用法:
#include <iostream>#include "boost/progress.hpp"#include <windows.h>#include <vector>using namespace boost;int main(){std::vector<std::string> v(100);progress_display pd(v.size());std::vector<std::string>::iterator it = v.begin();for (; it != v.end(); ++it ){Sleep(1000);pd++;}getchar();return 0;}打印结果:
实际上就是打印一个进度条来显示当前进度的
注意:progress_display无法把进度显示输出与程序的输出分离
0 0
- boost学习之二(时间 timer库)
- Boost学习之Timer库
- boost库之时间处理(timer,progress_timer, progress_display)
- Boost之时间处理(timer库)
- boost::timer之时间处理器
- boost库学习之 timer库
- 初探boost之timer库学习笔记
- Boost库学习----timer
- boost-timer库学习
- Boost库学习笔记 2.1 Boost时间与日期timer库
- 【08】 Boost库学习笔记之定时器(Timer)
- boost之学习备注浅析timer篇
- 【boost学习】之boost::asio(1)——Timer定时器
- 浅尝boost之timer
- 浅尝boost之timer
- Boost库学习随记二 date_time、time_duration、date_facet、time_facet、timer库示例等:
- Boost 学习之二 BGL
- Boost学习(二)
- Unity中游戏的声音管理
- 出现次数 SDUT 2521
- [数论]素数相关整理
- NS3网络仿真(10): 解析以太网帧
- R语言基础
- boost学习之二(时间 timer库)
- 20150810训练题
- VS2015“检测到在集成的托管管道模式下不适用的 ASP.NET 设置”的最终解决办法
- CSU 1113 Updating a Dictionary
- 03 推箱子
- Oil Deposits
- 关于数组—e1[e2]
- 简单区分Vmware的三种网络连接模式(bridged、NAT、host-only)
- LeetCode(26) Remove Duplicates from Sorted Array