C++ 时间相关操作

1
2
3
4
5
6
7
8
9
// #include <time.h>
#include <ctime>

clock_t st_time = clock();
// 其他程序
clock_t ed_time = clock();

// 以秒为单位
double time_dif = double (ed_time - st_time) / CLOCKS_PER_SEC;
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include <sys/time.h>

// 数据结构定义
// struct timeval {
//     long tv_sec;  // 秒
//     long tv_usec; // 微秒(百万分之一秒)
// };

struct timeval st_time, ed_time;
gettimeofday(&st_time, NULL);
// 其他程序
gettimeofday(&ed_time, NULL);

// 以秒为单位
double time_dif = ed_time.tv_sec - st_time.tv_sec + (ed_time.tv_usec - st_time.tv_usec) / 1000000.0;
1
2
3
4
5
6
7
8
#include <chrono>

auto st_time = std::chrono::steady_clock::now();
// 其他程序
auto ed_time = std::chrono::steady_clock::now();

// 以秒为单位
double time_dif = (ed_time - st_time).count() / 1000000.0;
1
2
// 休眠5s
sleep(5);
1
2
3
#include <chrono>
// 休眠5s
std::this_thread::sleep_for(std::chrono::seconds(5));