时间差-两个时间点之间的差,以毫秒为单位
Chrono - The difference between two points in time in milliseconds?
如何获得(使用std::chrono库)两个时间点之间的毫秒差?
我可以这样做:
std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now();
std::chrono::time_point<std::chrono::system_clock> foo = now + std::chrono::milliseconds(100);
std::chrono::duration<float> difference = foo - now;
const int milliseconds = difference.count() * 1000;
我怎么能得到这个时间毫秒,所以我可以使用持续时间作为一个无符号int,而不是一个浮点数,然后乘以1000?
std::chrono::duration
有两个模板参数,第二个恰好是度量单位。可以调用std::chrono::duration_cast
从一种持续时间类型转换为另一种持续时间类型。此外,还有一个预定义的持续时间类型,以毫秒为单位:std::chrono::milliseconds
。将这些组合在一起:
auto milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(foo - now);
要获取实际的毫秒数,使用duration::count
:
auto ms = milliseconds.count();
它的返回类型是duration::rep
,对于std::chrono::milliseconds
这样的标准持续时间类型,它是一个大小未指定的有符号整数。
chrono::duration_cast<chrono::milliseconds>(end_time - start_time).count()
我在打印像e-09这样的字母时遇到了持续时间问题。下面是我的修复方法:
auto start = std::chrono::high_resolution_clock::now();
< run your function or code here >
auto finish = std::chrono::high_resolution_clock::now();
std::chrono::duration<double, std::milli> elapsed = finish - start;
std::cout << "Elapsed Time: " << elapsed.count() << " seconds" << std::endl;
现在我得到了想要的结果:
Elapsed Time: 34.406 seconds
http://www.cplusplus.com/reference/chrono/duration_cast/
std::chrono::duration_cast<std::chrono::milliseconds>();
相关文章:
- 以天C++为单位的两个时间戳之间的差异
- 如何以毫秒为单位获取开始时间和 now() 之间的毫秒差异(以 C++为单位?
- 从原始字节解码协议缓冲区(以 C++为单位)
- 如何在 c++ 中确定一条指令(以字节为单位)在哪里结束,另一条指令从哪里开始?
- 编写以 C++ 为单位返回值的函数
- 以C++为单位进行运行长度编码
- 如何找到两个日期之间的时间差异(以秒和纳秒为单位)?
- arr[n] 是否以 C++ 为单位打印数组的长度?
- 字符串数组上的 sizeof 运算符以 C++ 为单位给出不同的输出
- 以 C++ 为单位具有输出限制的排列
- 以 GDB 为单位指定浮点精度
- 整数数据如何以位为单位存储在内存中?不是右对齐吗?
- 如何在没有硬编码的情况下以C++为单位获取类数组的长度?
- 指针引用的生存期(以 C++为单位)
- 以字符为单位设置控制台大小
- 获取嵌套 stl 容器的大小(以字节为单位)
- 使用 c++ 获取两个日期与时间字符串之间的差异(以秒为单位)
- 两个纳秒之间的区别 计时::time_points,但以秒为单位
- 设计一个结构来存储时间和日期.写一个函数来计算两个时间之间的差(以分钟为单位)
- 时间差-两个时间点之间的差,以毫秒为单位