chrono 的核心内容
1、Durations
std::chrono::duration 表明一段时间,表明如下
template <class Rep, class Period = ratio<1> > class duration;
Rep表明一种数值类型,用来表明Period的数量,列如int float double
Period是ratio类型,用来表明【用秒表明的时间单位】列如second milisecond
常用的duration<Rep,Period>已经定义好了,在std::chrono::duration下:
ratio<3600, 1> hours
ratio<60, 1> minutes
ratio<1, 1> seconds
ratio<1, 1000> microseconds
ratio<1, 1000000> microseconds
ratio<1, 1000000000> nanosecons
可以这样使用:
#include <iostream>
#include <chrono>
int main() {
typedef std::chrono::hours hours;
typedef std::chrono::minutes minutes;
typedef std::chrono::duration<int,std::ratio<60*60,1>> my_hours;
typedef std::chrono::duration<int,std::ratio<60,1>> my_minutes;
return 0;
}
hours 、my_hours,minutes、my_minutes是等价的
由于存在不同的Duration,chrono库提供了duration_cast类型转换函数。
可以这样使用
#include <iostream>
#include <chrono>
int main() {
typedef std::chrono::hours hours;
typedef std::chrono::minutes minutes;
typedef std::chrono::duration<int,std::ratio<60*60,1>> my_hours;
typedef std::chrono::duration<int,std::ratio<60,1>> my_minutes;
hours one_hours{1};//一个1小时
my_hours my_one_hours(1);
minutes one_minute(1);//一个1分钟
my_minutes my_one_minutes{1};
std::cout<<"one_hours duration has "<<one_hours.count()<<" ticks
"
<<"my_one_hours duration has "<<one_hours.count()<<" ticks
"
<<"one_minutes duration has "<<one_minute.count()<<" ticks
"
<<"my_one_minutes duration has "<<my_one_minutes.count()<<" ticks
";
std::cout<<"one hour has "<<std::chrono::duration_cast<minutes>(one_hours).count()<<" minutes
"
<<"one hour has "<<std::chrono::duration_cast<my_minutes>(one_hours).count()<<" minutes
"
<<"my_one hour has "<<std::chrono::duration_cast<minutes>(my_one_hours).count()<<" minutes
"
<<"my_one hour has "<<std::chrono::duration_cast<my_minutes>(my_one_hours).count()<<" minutes
";
return 0;
}
运行结果
one_hours duration has 1 ticks
my_one_hours duration has 1 ticks
one_minutes duration has 1 ticks
my_one_minutes duration has 1 ticks
one hour has 60 minutes
one hour has 60 minutes
my_one hour has 60 minutes
my_one hour has 60 minutes
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...
