Boost–progress_timer

简介:

progress_timer继承自timer,但是精度为2,为了扩展精度,我们自己实现一个类,代码如下:

#include <iostream>
#include<boost/progress.hpp>
#include <boost/static_assert.hpp>
using namespace std;
using namespace boost;


template<int N=2>
class new_progress_timer :public timer{
public:
	new_progress_timer(ostream &os=cout):m_os(os){
		
		BOOST_STATIC_ASSERT(N>=0&&NULL<=10);
	}
	~new_progress_timer(){

		try{
			istream::fmtflags old_flags=m_os.setf(istream::fixed,istream::floatfield);
			streamsize old_prec=m_os.precision(N);

			//输出时间
			m_os<<elapsed()<<"s\n"<<endl;

			//恢复流的状态
			m_os.flags(old_flags);
			m_os.precision(old_prec);
		}catch(...){
			//do nothing
		}
	}
private: 
	ostream &m_os;
};

int _tmain(int argc, _TCHAR* argv[])
{	
	new_progress_timer<10> t;

	//cout<<t.elapsed(); 这里不需要亲自调用,当超过t的作用域的时候自动调用
	return 0;
}

image

目录
相关文章
|
Java
java8中修改parallelStream默认并发数
java8中修改parallelStream默认并发数
2294 0
java8中修改parallelStream默认并发数
|
9月前
|
监控 供应链 数据可视化
电商项目管理之 WBS方法策略
通过将项目拆解成更小、更可执行的任务单元,WBS帮助团队理清思路、明确分工、监控进度,最终确保项目顺利落地。
233 12
电商项目管理之 WBS方法策略
|
人工智能 分布式计算 数据处理
Big Data for AI实践:面向AI大模型开发和应用的大规模数据处理套件
文叙述的 Big Data for AI 最佳实践,基于阿里云人工智能平台PAI、MaxCompute自研分布式计算框架MaxFrame、Data-Juicer等产品和工具,实现了大模型数据采集、清洗、增强及合成大模型数据的全链路,解决企业级大模型开发应用场景的数据处理难题。
|
存储 数据库
离线数仓(八)【DWD 层开发】(1)
离线数仓(八)【DWD 层开发】
|
运维 IDE Devops
Cloud IDE 大比拼 《在线编辑器》
我们知道目前很多云服务商,在实践 DevOps 能力的过程中,云服务的客户往往会把需求、代码、构建、测试、发布、部署、运维、运营等工作全部从本地转移到云端,享受云服务带来的移动性和便利性。但是一直缺乏有效的上云方式,导致开发人员手中没有良好的工具,无法真正实现 DevOps 运维开发一体化的理念,因此一款云上 Coding 的开发工具,也是很多云服务商的必备神器。
836 0
|
SQL 算法 关系型数据库
开发指南—DDL语句—分区表语法—CREATE TABLE
本文主要介绍使用DDL语句进行建表的语法、子句、参数和基本方式
281 0
|
SQL 存储 分布式计算
使用Relational Cache加速EMR Spark数据分析
Relational Cache的强大功能赋予了Spark更多的可能,通过Relational Cache,用户可以提前将任意关系型数据(Table/View/Dataset)cache到任意Spark支持的DataSource中,并支持灵活的cache数据组织方式,基于此,Relational Cache可以在诸多应用场景中帮助用户加速Spark数据分析。
|
消息中间件 存储 Java
RocketMQ集群配置
 RocketMQ 网络部署特点 Name Server是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。
1746 0
|
网络协议 关系型数据库 MySQL