输出tuple和chrono的使用小例子

// move example
#include <iostream>     // std::cout
#include<tuple>

#include<ratio>
#include<chrono>

using namespace std;


template<typename... Types>
ostream& operator<<(ostream& os, const tuple<Types...>& t1)
{
	os << '[';
	PRINT_TUPLE<0, sizeof...(Types), Types...>::print(os, t1);
	os << ']';
	return os;
}
template<int index, int max, typename... Types>
struct PRINT_TUPLE
{
	static void print(ostream& os, const tuple<Types...>& t1)
	{
		os << get<index>(t1);
		if(index<max-1)
			os << ',';
		PRINT_TUPLE<index + 1, sizeof...(Types), Types...>::print(os, t1);
	}
};

template<int max, typename... Types>
struct PRINT_TUPLE<max,max,Types...>
{
	static void print(ostream& os, const tuple<Types...>& t1)
	{
	
	}
};

int main() {
	
	using namespace chrono;
	using days_type=duration<int, ratio<60 * 60 * 24>>;

	system_clock::time_point t1 = system_clock::now();
	time_point<system_clock, days_type> today = time_point_cast<days_type>(system_clock::now());
	cout << "距离1970年1月1日"<<today.time_since_epoch().count()<<"天" << endl;
	system_clock::time_point tp = system_clock::now(); //typedef chrono::time_point<system_clock> system_clock::time_point;
	tp += chrono::hours(24);
	time_point<system_clock, days_type> tomorrow=time_point_cast<days_type>(tp);
	cout << "距离1970年1月1日" << tomorrow.time_since_epoch().count() << "天" << endl;
	system_clock::duration du(11); //typedef chrono::duration<rep, period> system_clock::duration;
	cout <<"count:"<< du.count()<<",period:"<<system_clock::period::num<<'/'<<system_clock::period::den << endl;
	nanoseconds dn=duration_cast<nanoseconds>(du);
	cout <<"nanoseconds count:"<< dn.count()<< endl;
	system_clock::time_point t2 = system_clock::now();
	cout << "程序运行时间:" << duration_cast<microseconds>(t2 - t1).count() <<"微秒"<< endl;

	system("pause");
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值