锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C++开源 / duration使用duration_cast转换为秒和毫秒
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
量化预测
股票离线分析软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。点名“简易百科”和闲暇巴盗用锐英源原创内容


duration使用duration_cast转换为秒和毫秒


近期使用httplib,研究了httplib的源代码,里面的duration使用duration_cast转换为秒和毫秒的例子比较精巧,带上注释分享给大家,最后也说下duration的理解。

template <typename T, typename U>
inline void duration_to_sec_and_usec(const T &duration, U callback) {
  auto sec = std::chrono::duration_cast<std::chrono::seconds>(duration).count();//std::chrono::seconds是强制转换单元
  auto usec = std::chrono::duration_cast<std::chrono::microseconds>(//std::chrono::microseconds单元
                  duration - std::chrono::seconds(sec))//相当于全部减去整数部分,留下小数部分按microseconds转
                  .count();
  callback(static_cast<time_t>(sec), static_cast<time_t>(usec));
}

duration刚开始不好理解,template <class Rep, class Period> class duration;里的Period是周期的意思,用ratio来表示,而Rep是重复的类型,Rep应该是Repeat的意思,记住是类型。

ratio也是个类型,是结构体封装的类型,比如MSDN的例子:

// create a duration that tracks ticks as 1/10ths of a second
    duration<int, std::ratio<1, 10>> tenths{ 5 };

周期是0.1秒,分秒ds,{5}是5个分秒,5ds。ratio<1>是1秒,ratio<1,10>是0.1秒。

友情链接
版权所有 Copyright(c)2004-2024 锐英源软件
统一社会信用代码:91410105098562502G 豫ICP备08007559号 最佳分辨率 1440*900
地址:郑州市金水区文化路97号郑州大学北区院内南门附近