通过指定std::chrono::duration_cast
的模板参数来设定精度,该函数的第一个模板参数指定转换后的duration
精度,后两个模板参数直接由实参类型推倒出。
其中所谓的精度影响的是std::chrono::duration
的成员函数count()
的返回值类型与返回值,最终duration
所代表的时间段长度为
.
常用精度:
std::chrono::duration_cast<std::chrono::nanoseconds> //纳秒
std::chrono::duration_cast<std::chrono::microseconds> //微秒
std::chrono::duration_cast<std::chrono::milliseconds> //毫秒
std::chrono::duration_cast<std::chrono::seconds> //秒
或使用如下的模板参数指定转换精度为 秒:
std::chrono::duration<std::intmax_t, std::ratio<X, Y>>
下面的代码实现了对某任务的计时并输出毫秒数:
#include <chrono>
#include <iostream>
int main()
{
auto t0 = std::chrono::steady_clock::now();
// Task to do
std::cout << std::chrono::duration_cast<std::chrono::milliseconds>
(std::chrono::steady_clock::now() - t0).count()
<< '\n';
return 0;
}