boost-timer库学习

boost  timer库学习

                                                                            

 timer是一个很小的库,提供简易的度量时间,和进度显示功能,可以用与性能测试等需要计算的任务,对应大多数的情况够用。

timer包括三个组件,分别是:计时类timer 、process_timer和进度指示类progress_display。


timer类可以测量时间的流逝,是一个小型的计时器,提供毫秒级别的计时精度和操作函数。

timer位于命名空间boost,为了使用timer组件,需要包含头文件<boost/timer.hpp>

即:

#include <boost/timer.hpp>

using namespace boost;


#include<boost/timer.hpp>
#include <iostream>
using namespace std;
using namespace boost;
int main()
{
timer t;
cout<<"max timespan:"<<t.elapsed_max()/3600<<"h"<<endl;
cout<<"min_timespan:"<<t.elapsed_min()<<"s"<<endl;
cout<<"now time elapsed :"<<t.elapsed()<<endl;
return 1;
}
如图结果:


progress_timer使用

progress_timer也是一个计时器,它继承timer,会在析构时候自动输出时间,省去了timer手动elapsed()的工作,是一个自动计时的小工具

progress_timer位于名字空间boost,为了使用progress_timer组件,需要包含头文件<boost/progress.hpp>

using namespace boost;

用法:
progress_timer继承timer全部功能,可以如timer那样使用。例如:

 
#include<boost/timer.hpp>
#include <iostream>
#include <boost/progress.hpp>
using namespace std;
using namespace boost;
int main()
{

progress_timer t;
cout<<t.elapsed()<<endl;

/*
timer t;
cout<<"max timespan:"<<t.elapsed_max()/3600<<"h"<<endl;
cout<<"min_timespan:"<<t.elapsed_min()<<"s"<<endl;
cout<<"now time elapsed :"<<t.elapsed()<<endl;
*/

 system("pause");
}


输出结果为:


如果要在一个程序中测量多个时间,可以运用花括号{}来限定progress_timer的生命周期:

#include<boost/timer.hpp>
#include <iostream>
#include <boost/progress.hpp>
using namespace std;
using namespace boost;
int main()
{
	{
		progress_timer t1;
	}
	{
		progress_timer t2;
	}
	{
		progress_timer t3;
	}
	system("pause");
}
显示结果为:




progress_display使用:

progress_display可以在控制台上显示程序的执行进度,如果程序 执行很耗费时间,那么它能够提供一个友好的用户界面。

progress_display位于命名空间boost,为了使用它,需要包含头文件<boost/progress.hpp>

即:

#include<boost/progress.hpp>

using namespace boost;

使用progress_display首先要调用它的构造函数,传人进度基数,如:

progress_display pd(v.size());

如下程序:

#include <boost/progress.hpp>
#include <boost/timer.hpp>
#include <iostream>
#include <vector>
#include <fstream>
#include <boost/static_assert.hpp>
#include <string>


using namespace boost;
using namespace std;
int main()
{
	vector<string> v(100,"aaa");
	v[10]="",v[23]="";
	ofstream fs("c:\\test1.txt");
	progress_display pd(v.size());
	vector<string>::iterator pos;
	for(pos=v.begin();pos!=v.end();++pos)
	{
		fs<<*pos<<endl;
		++pd;
		//if(pos->empty())
			//cout<<"null string"<<endl<<(pos-v.begin())<<endl;



	}
	 
}
 

运行结果为:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值