C++中Duration、Time_point和Clocks_万里归来少年心的博客-CSDN博客_time_point
C++11中的chrono库,实现时间相关的功能。
1.time_point
time_point表示一个时间点。
2. duration
两个time_point对象之间的距离是duration类型。
duration对象可以通过duration_cast转换成以毫秒为单位、秒为单位、微秒为单位等。
typedef duration <Rep, ratio<3600,1>> hours;
typedef duration <Rep, ratio<60,1>> minutes;
typedef duration <Rep, ratio<1,1>> seconds;
typedef duration <Rep, ratio<1,1000>> milliseconds; //毫秒
typedef duration <Rep, ratio<1,1000000>> microseconds; //微秒
typedef duration <Rep, ratio<1,1000000000>> nanoseconds; //纳秒
3.clocks
clocks表示当前的系统时钟
system_clock::now() 获取系统的时钟,返回值是time_point类型;
4 time_since_epoch
走过的时间
system_clock::time_point begin_write_current_file;
assert(begin_write_current_file.time_since_epoch().count() != 0);//是否已经被赋值
完整示例
测试一段代码的执行时间。
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
system_clock::time_point t1 = system_clock::now();
cout << "Hello World\n";
system_clock::time_point t2 = system_clock::now();
cout << duration_cast<milliseconds>(t2 - t1).count() << " milliseconds." << endl;
return 0;
}
用于线程的示例
#include <iostream>
#include <chrono>
#include <thread>
using namespace std;
int main()
{
this_thread::sleep_for(chrono::seconds(3)); //休眠3秒
this_thread::sleep_for(chrono::milliseconds(100)); //休眠100毫秒
cout << "Hello" << endl;
getchar();
return 0;
}