C艹时间
引入chrono
官方库
high_resolution_clock::now()
获取当前时间
std::chrono::duration
类模板接受两个模板参数:
第一个是数值类型,第二个是时间单位。如果不指定时间单位,默认单位是秒。
#include <iostream>
#include <chrono>
#include <thread>
int main() {
// 获取当前时间点
auto start = std::chrono::high_resolution_clock::now();
// 一个睡眠函数
std::this_thread::sleep_for(std::chrono::seconds(3));
// 获取操作结束时的时间点
auto end = std::chrono::high_resolution_clock::now();
// 计算时间差,单位为秒
std::chrono::duration<double> elapsed_seconds = end - start;
// 转换为其他单位,毫秒
auto elapsed_milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "Elapsed time: " << elapsed_seconds.count() << " seconds\n";
std::cout << "Elapsed time: " << elapsed_milliseconds.count() << " milliseconds\n";
return 0;
}
解释
std::chrono::duration<float>
创建了一个使用浮点数表示秒的持续时间对象。half_seconds.count()
返回持续时间的原始值(2.5秒)。- 你可以将一个
duration
对象转换为不同的时间单位,例如从秒转换到毫秒。在上面的例子中,milliseconds
是以毫秒为单位表示的相同时间跨度。
Comments NOTHING