一、时钟clock
std::chrono::system_clock: 依据系统当前时间
std::chrono::steady_clock: 不能设置的时钟,以统一速率运行
std::chrono::high_resolution_clock: 高分辨率时钟
三个时钟类都提供一个静态成员函数now()用于获取当前时间,函数返回值是time_point类。
system_clock还提供静态成员函数to_time_t(),用于转换系统时间为std::time_t类型,可以用ctime()函数将时间转换成字符串格式(需要#include<ctime>):
auto t = std::chrono::system_clock::now();//获取系统当前时间
auto tt = std::chrono::to_time_t(t);//当前时间转换为time_t类型
string str_tt = std::ctime(&tt);//转换为字符串且自带换行符
cout << str_tt;
二、时间段duration
duration_cast类型转换函数:将duration转换成另一个类型的duration
count()成员函数:表示时间段长度
std::vector<int> v;
auto t1 = std::chrono::steady_clock::now();
for (int i = 1; i < 100; i++)
{
int j = i*pow(i,2);
v.push_back(i);
}
auto t2 = std::chrono::steady_clock::now();
auto time_used1 = std::chrono::duration_cast<microseconds>(t2-t1);
auto time_used2 = std::chrono::duration_cast<std::chrono::duration<double>>(t2-t1);
cout << "用时:" << time_used1.count() << "微秒" << endl;
cout << "等于:" << time_used2.count() << "秒" << endl
|